我想知道是否有可能将 Dictionary 的值绑定到 CheckBoxFor?
我试着这样做:
看法
@for (int c = 0; c < Model.ObjectsWithPermission[a].PermissionColumns.Count; c++)
{
<tr>
<td>
@Model.ObjectsWithPermission[a].PermissionColumns[c].Name
</td>
@for (int i = 0; i < Model.ObjectsWithPermission[a].PermissionColumns[c].Permissions.Count; i++)
{
<td align="center">
@*@Html.CheckBox(permission.Key, permission.Value)*@
@Html.CheckBoxFor(x => Model.ObjectsWithPermission[a].PermissionColumns[c].Permissions.ElementAt(i).Value)
</td>
}
模型
[Display(Name = "Groups")]
public PermissionMatrix GroupsWithPermission { get; set; }
权限矩阵
public string Name { get; set; }
public List<PermissionMatrixColumn> PermissionColumns { get; set; }
权限矩阵列
private void Init()
{
//I want to bind it to these values
Permissions = new Dictionary<string, bool>()
{
{"SELECT",false},
{"INSERT",false},
{"UPDATE",false},
{"ALTER",false},
{"DELETE",false},
};
}
public PermissionMatrixColumn(string name)
{
Init();
Name = name;
}
public PermissionMatrixColumn()
{
Init();
}
public string Name { get; set; }
[Display(Name = "Permissions")]
public Dictionary<string, bool> Permissions { get; set; }
控制器
如果我设置一个复选框并提交它,给我的控制器的给定模型没有检查这个值(真)。
public ViewResult Index(TableModel model)
{