我有一个视图,我显示最多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();
或类似的东西。
答案 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
生成任何控件,因此如果您返回视图,则需要确保重新分配选项的值。