如果标题不清楚,我们深表歉意。

我正在尝试从ASP.NET MVC中提交的表单返回我的模型。

我的问题与this question几乎相同,只是不同之处在于我没有List<Model>而是一个类似以下的模型:

public Model
{
     string UserName {get; set;}
     string Password {get; set;}
     List<Roles> UserRoles {get; set;}
}

我需要UserRoles作为复选框,管理员在创建新用户时可以从中选择这些复选框。我的问题是,我不确定如何对列表使用'@ Html.CheckBoxFor'。我尝试了这个:
 @for (var i = 0; i < Model.UserRoles.Count();i++ )
 {
   @Html.HiddenFor(model => model.UserRoles[i].RoleID)
   @Html.CheckBoxFor(model => model.UserRoles[i].Selected)
   @Html.LabelFor(model => model.UserRoles[i].Name)
 }

这根本没有用-页面上的每个标签都是“名称”,而POST中我的列表为空。有人可以为此提供任何指导吗?

最佳答案

完全不需要离开Razor。

这对我有用:

for (var i = 0; i < Model.UserRoles.Count(); i++)
{
    var role = Model.UserRoles[i];
    @Html.HiddenFor(model => model.UserRoles[i].RoleId)
    @Html.CheckBoxFor(model => model.UserRoles[i].Selected)
    @Html.LabelFor(model=> model.UserRoles[i].Name, role.Name)
}

关于c# - 具有List属性的模型中的ASP.NET MVC CheckBoxList,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20687121/

10-09 20:50