C# 带有MVC4的复选框矩阵

C# 带有MVC4的复选框矩阵,c#,asp.net-mvc-4,checkbox,C#,Asp.net Mvc 4,Checkbox,我需要显示一个复选框矩阵,就像这里的一样 好的,我没有子问题,而是角色和类型,所以这里是我的代码: 我的模型: public class role { public role() { types = new List<role_type>(); } [Key] public int role_id { get; set; } public string role_name { get; set; } publ

我需要显示一个复选框矩阵,就像这里的一样

好的,我没有子问题,而是角色和类型,所以这里是我的代码:

我的模型:

public class role
{
    public role()
    {
        types = new List<role_type>();
    }

    [Key]
    public int role_id { get; set; }
    public string role_name { get; set; }
    public int role_value { get; set; }
    public Boolean IsSelected { get; set; }

    public IList<role_type> types { get; set; }
}

public class role_type
{
    public int Id { get; set; }
    public Boolean IsSelected { get; set; }
    public string type { get; set; }
}
我的看法呢

@model UsersManagement.Models.roleViewModel
@{
    ViewBag.Title = "Index";
}


@for (var i = 0; i < Model.Roles.Count(); i++)
{
  <div id="roles">            
    <ul>
      @for (var j = 0; j <4; j++)
      {
        <li>@Html.CheckBoxFor(m=>Model.Roles[i].types[j].IsSelected)</li>
      }
    </ul>  
  </div>
 }
@model UsersManagement.Models.roleViewModel
@{
ViewBag.Title=“Index”;
}
@对于(var i=0;i
@对于(var j=0;j Model.Roles[i]。类型[j]。IsSelected)
}

}
这没有显示任何内容,我遗漏了什么

类型应该是(编辑、删除、读取、创建),角色应该是:管理公司、管理发票等


PS:我的最终目标是定制授权系统,但这是另一个问题。

首先从GET方法中删除
roleViewModel rvm
参数,并初始化一个新实例,然后返回该实例(您的模型包含复杂的对象和集合,因此它们在绑定后都将
null
或为空)非常感谢。但即使在那之后,我仍然一无所获。除了
Model.Roles.Count()
为零之外,即使它确实包含项目,您唯一能呈现的只是一个复选框(没有标题或标签)因此,视图不会使mauch有意义您是否在模型中添加了一些
角色
角色类型
?我是从一个数据库绑定的,其中当然包含一些角色和角色类型。
public class roleviewmodelController : Controller
{
    private Context db = new Context();

    [HttpGet]
    public ActionResult Index(roleViewModel rvm)
    {
        return View(rvm);
    }
}
@model UsersManagement.Models.roleViewModel
@{
    ViewBag.Title = "Index";
}


@for (var i = 0; i < Model.Roles.Count(); i++)
{
  <div id="roles">            
    <ul>
      @for (var j = 0; j <4; j++)
      {
        <li>@Html.CheckBoxFor(m=>Model.Roles[i].types[j].IsSelected)</li>
      }
    </ul>  
  </div>
 }