我有 2 组单选按钮,其中的链接与 ASP.NET MVC 应用程序中的每个组相对应。

为了更清晰起见,下面是屏幕截图:

替代文本 http://img21.imageshack.us/img21/7959/radiogroups.png

当我选择适当的链接时,与特定组关联的值应传递到控制器操作。

例如,在上述情况下,单击“链接 1”时,值 A1 或 A2 应传递给控制器​​操作方法。

我尝试向适当的操作方法发布帖子,但与第二个链接关联的值也被传递。如何从单击的链接中仅获取选定的值?

有帮助吗?

解决方案

我会使用 javascript 函数作为链接的 href。它会读取相应单选按钮组的选定值并将其添加到 URL 字符串中。您可以设置window.location或设置表单操作并提交。

其他提示

使用 javascript,您可以在提交表单之前清除其他单选按钮的值。

其他解决方案可以是拥有一个隐藏字段,并在单击链接时使用 javascript 将其填充为适当的值。然后您就可以获得该字段的值并忘记单选按钮。

将两个单选按钮和关联的链接放入单独的表单中。将链接替换为提交按钮(如果您希望它看起来像链接,则提交图像)。因此,您将有两个表单都发布到同一个控制器操作。给你的提交按钮一个 name 可以在操作中使用它来确定单击了哪个按钮。您还可以使用隐藏字段。该操作中要做的第一件事是确定单击了哪个按钮,然后读取单选按钮的适当请求值。

另一种选择是让所有内容都采用相同的形式,并具有两个提交按钮和不同的名称。

看法

@model MvcApplication2.Models.CountryModel
@using (Html.BeginForm())
{
            @Html.RadioButton("Gender", "Male" new { @checked = "checked" }) Male
            @Html.RadioButton("Gender", "Female")Female
            <input type="submit" text="submit"/>
}

模型

   public class CountryModel
    {
        public string Gender{ get; set; }

    }

控制器

public ActionResult Index()
{                    
    return View();
}
[HttpPost]
public ActionResult Index(CountryModel model)
{
    //for radio button
    CountryModel dd = new CountryModel();
    string date1 = model.RDB;
    return View(model);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top