情况是这样的,我有一个 ClassA,其中包含 ClassB 对象的列表。 ClassB 有 3 个变量,一个 int、一个 bool 和一个 string。当我列出它时,我试图更改 bool 变量(在 View 中使用 foreach )。列表部分运行顺利(我可以选择要检查的复选框),但用户选择的复选框的值不会被记住。
这是一个 View 模型:
@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>
}
``...
}
最佳答案
尝试这样:
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 助手将为相应的输入字段生成正确的名称,以便默认模型绑定(bind)器能够在您提交表单时正确绑定(bind)它。
关于asp.net - @Html.CheckBoxFor 不会更改变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19817011/