从视图中的单选按钮获取已发布的选定值

时间:2015-03-07 22:13:17

标签: jquery html asp.net-mvc forms

我有一个视图,我显示最多5个单选按钮,如下所示:

查看

foreach(var item in Model.AvailableOptions)
{
     @Html.RadioButtonFor(m => m.Option, item.OptionId, new { Id = item.Id});
}

模型

IList<Options> AvailableOptions {get; set;}

然后我在同一视图上有一个javascript,用于处理页面上的某些表单。例如,如果我点击每个按钮时有5个单选按钮,我会隐藏表单并显示下一个等等。

问题是,如果有5个单选按钮,我在第三个按钮上,并且我在表单中提交了一些无效条目,当它返回到页面时,它将其设置为所选的第一个单选按钮。我想知道在提交中选择了哪一个,以便我可以在javascript上重置它。

我想要的东西(只是不知道该怎么做)

var selectedValue =  '@(int)Model.SomehowRetrieveTheValuePosted';

然后我就能做到:

jQuery(".radioOptions")[selectedValue].show();

或类似的东西。

1 个答案:

答案 0 :(得分:1)

您的模型需要一个属性来绑定所选的选项,例如

public class MyModel
{
  public int SelectedOption { get; set; }
  IList<Options> AvailableOptions {get; set;}
}

查看

foreach(var option in Model.AvailableOptions)
{
  @Html.RadioButtonFor(m => m.SelectedOption , option.OptionId, new { Id = option.Id});
  // assume Option contains a property Name for display
  <label for="@option.Id">@option.Name</label> 
}

如果SelectedOption的值与其中一个选项的Id匹配,则会在首次显示该页面时选择该值。如果您选择其他选项,则在您发布并返回视图时将选择该选项。

附注:由于您没有为Options生成任何控件,因此如果您返回视图,则需要确保重新分配选项的值。