asp.net - @Html.CheckBoxFor 不会更改变量的值

标签 asp.net asp.net-mvc-4

情况是这样的,我有一个 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/

相关文章:

c# - 从数据表中选择两列之间的记录

javascript - ReferenceError : 'x' is not defined - asp.net mvc 局部 View 和 jQuery/JavaScript - 将整个模型传递给操作方法

asp.net-mvc-4 - 使用 Razor 更改 MVC4 中 html.editorfor helper 的 id 属性

asp.net-mvc - PartialView 是否应该使用指定的布局?

asp.net-mvc - MVC4 中捆绑的正确方法

.net - 为什么用户信息存储在 ASP.NET 的默认 Membership Provider 的两个不同的表中?

asp.net - 定义 ASP.NET SOAP Web 服务响应

c# - 从MVC WebApi调用时Git/SSH挂起

c# - "DataTable already belongs to another DataSet"

c# - 如何在回发后保留全局变量 List<object> 的值