这是情况,我有一个包含ClassB对象列表的ClassA。 ClassB有3个变量,一个是int,一个bool和一个字符串。我在列出它时尝试更改bool变量(在视图中使用foreach)。列表部分运行顺畅(我可以选择要检查的复选框),但是用户选择的复选框的值不会被记住。
这是一个视图模型:
@model ClassA
...
@using (Html.BeginForm("Upload", "Registration", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
...
<p>Your name: @Html.TextBoxFor(x => x.FirstName) </p>
<p>Adress: @Html.TextBoxFor(x => x.Adress)</p>
foreach (ClassB check in Model.ClassBlist)
{
<p>@check.Name:@Html.CheckBoxFor(x=>check.attributeChecked,check.itemID)</p>
}
``...
}
答案 0 :(得分:2)
试试这样:
for (var i = 0; i < Model.ClassBlist.Count; i++)
{
<p>
@Html.DisplayFor(x => x.ClassBlist[i].Name)
:
@Html.CheckBoxFor(
x => x.ClassBlist[i].attributeChecked,
Model.ClassBlist[i].itemID
)
</p>
}
这次CheckBoxFor帮助器将为相应的输入字段生成正确的名称,以便默认模型绑定器能够在您提交表单时正确绑定它。