public class UserRoleViewModel { [Required( ErrorMessage = "用户组名不能为空")] [Remote("CheckRoleNameExists", "User", ErrorMessage = "用户账号已存在")] public string RoleName { get; set; } [Required(ErrorMessage = "请选择权限列表")] public List<Permission> Permissions { get; set; } }
我在页面中添加了一个强类型的Model-如上代码所示。
然后我在View中显示:
@foreach (Permission permission in Model.Permissions) { <tr> <td> @*<input type="checkbox" class="checkbox" value="@permission.ID" name="PermissionIDs"/>*@ @Html.CheckBox("PermissionIDs", false, new { @class = "checkbox",@value=permission.ID }) </td> <td> <h3> <a href="#">@permission.Name</a> </h3> </td> </tr> }
现在我提交表单,怎么把CheckBox也传递过去了,能不能直接包含在上面的Model的List<Permission>中呢。
谢谢各位。
Permissions需要一个布尔值类型的属性
@for (int i = 0;xxxxxxxxx)
{
<tr>
<td>
@Html.CheckBoxFor(Model.Permissions[i].布尔值类型的属性, new { @class = "checkbox",value=permission.ID })
</td>
<td> <h3> <a href="#">@permission.Name</a></h3>
</td>
</tr>
}
重点是这里
@Html.CheckBoxFor(Model.Permissions[i], new { @class = "checkbox",@value=permission.ID })
裸写的,你自己改改.
嗯,谢谢你。昨天我是加了一个。
@Html.CheckBoxFor(Model.Permissions[i].布尔值类型的属性这样的写法,但是这个选项勾选后不知道为什么过去的总是false,能不能麻烦你再给提点建议呢,谢谢。
改成public List<string> Permissions { get; set; }就可以接收了。
谢谢你。