2

我想知道是否有可能将 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)
{
4

0 回答 0