我有一个带有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)
}
答案 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)