Mvc Checkboxes与Bool模型绑定

时间:2014-08-21 11:48:57

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

我有一个带有bool isSelected属性的mvc模型。我将IEnumerable传递给我的视图并将其返回给我的控制器。问题是,即使选中复选框,我也总是错误。这里有一些代码:

型号:

public class User
{
    public string Name { get; set; }
    public int ID { get; set; }
    public string Email { get; set; }
    public bool selected { get; set; }
    public string company { get; set; }
    public string role { get; set; }
}

查看:

for(i=0;i<Model.Count();i++) 
{
   @Html.CheckBoxFor(modelItem => modelItem.ElementAt(i).selected)
}

1 个答案:

答案 0 :(得分:4)

您在使用此循环时正在创建多个具有相同名称的元素(在您的情况下为<input type="checkbox" name="selected" ...>。)由于这是一个集合,因此您的名称属性应为..name="[0].selected....name="[1].selected..

如果可能,请将集合更改为IList,以便您可以为名称编制索引

for (int i = 0; i < Model.Count; i++)
{
  @Html.CheckboxFor(m => m[i].selected)

或者,您可以将自定义EditorTemplate用于User类型并使用

@Html.EditorFor(m => m)