MVC - 如何在复选框列表中获取所选复选框

时间:2015-10-23 03:36:21

标签: asp.net-mvc

您好,我有一个来自此类型的强类型视图

public class EditGroupModel
  {
    public int GroupId { get; set; }
    public string GroupName { get; set; }
    public List<PermissionChecked> Permissions;
 }

如您所见,我的模型有一个PermissionChecekd类型的列表

public class PermissionChecked
  {
    public string Description { get; set; }
    public bool Checked { get; set;  }
  }

这是我的强类型视图

 @model EditGroupModel
    <div class="form-group clearfix">
            <div class="col-md-3">

                @Html.LabelFor(m => m.GroupName, new { @class = "control-label" })
                @Html.TextBoxFor(m => m.GroupName, new { @class = "form-control" })

            </div>
            <div class="col-md-3">
                @Html.LabelFor(m => m.Permissions, new { @class = "control-label" })
                @for (int i = 0; i < Model.Permissions.Count(); i++)
                { 
                  @Html.CheckBoxFor(x=>x.Permissions[i].Checked)
                  @Html.DisplayFor(x => x.Permissions[i].Description)
                }
            </div>

问题是,当我将数据发布到控制器时 - 因为您可能认为具有PermissionChecked项的List为null(),模型绑定无法与List一起使用)我无法理解哪个复选框检查与否 你可以建议一种在这种情况下正确的解决方法吗

2 个答案:

答案 0 :(得分:0)

我建议为复选框添加名称。像“权限”和您在表单提交中调用的控制器操作中的内容 - 您可以在操作参数中使用“列表权限”来读取复选框。

答案 1 :(得分:0)

有两种方法可以做到这一点。 1.使用复选框与某个班级相关联 并使用jquery检查检查的内容。然后使用ajax调用控制器方法。

2.观看此https://www.youtube.com/watch?v=4KeoOPWshmw