如果标题不清楚,我们深表歉意。
我正在尝试从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/