问题很简单,我有一个局部视图,其模型是一个列表。我试图绑定单选按钮为列表中的每个项目的布尔参数。只能选择列表中的一个项目,因此单选按钮。对于应该绑定到单选按钮的布尔值,模型正确绑定所有其他参数EXCEPT。下面的代码是我的部分的截断版本。
注意 - 由于我的应用程序具有多个路由,我需要使用“BeginRouteForm”帮助程序。此外,我使用“for”循环而不是“foreach”,因为似乎foreach在将模型发送到控制器时没有正确绑定我的模型。:
@model TestListModel
@using (Ajax.BeginRouteForm("Default", new { action = "Submit", controller = "TheController" }, new AjaxOptions { OnSuccess = "DoSomething" })) {
<table>
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
@for (int i = 0; i < Model.List.Count(); i ++) {
@Html.HiddenFor(x => Model.List[i].Id)
<tr>
<td>
@{
Dictionary<string, object> attributes = new Dictionary<string, object>();
attributes.Add("Name", "test");
attributes.Add("id", "");
@Html.RadioButtonFor(x => x.SelectedId, Model.List[i].Id, attributes)
}
</tr>
}
</tbody>
</table>
<input type="submit" value="Submit" style="margin: 10px 0px 0px 0px;" />
}
更新:好的,所以我很愚蠢(可能是一天结束的所有事情),但我正在模拟我的无线电按钮,就像它们是一个复选框一样。解释绑定错误工作的原因。我现在将上面的代码更新为我的新代码我使用的是带有“selectedid”而不是IEnumerable的模型。问题是,它仍然无法正常工作
答案 0 :(得分:0)
删除以下内容解决了它。
attributes.Add("Name", "test");