我有一个表格中添加一个新用户与用户角色少数几个复选框。我有我的行动称为用户的模型,其具有以下特性:ASP.NET MVC:模型绑定半对象
public string Username { get; set; }
public string Password { get; set; }
public IEnumerable<UserRole> Roles { get; set; }
的UserRole的类中,我有两个特性:
public int Id { get; set; }
public string Name { get; set; }
在我的形式,我可以成功地绑定到用户名和密码没有通过输入名称'用户名'和'密码'来解决问题。当页面最初加载用户角色的细节被加载,所以我需要返回的是Id,因为这是服务需要将用户与用户角色相关联的内容。
我以为我可以通过给每个复选框的角色ID的价值和传递,在与角色,因此部分完成角色类和离开作用对象空白的名称字段该做的简单方法。一个例子复选框看起来像这样:
<input type="checkbox" id="addUserAdministrator" name="Roles.Id" value="@Model.Roles.Where(role => role.Name == "Administrator").Select(role => role.Id).First()" class="css-checkbox"/>
然而,这绝不填充角色集合,它始终是零。有没有办法做到这一点,或者我需要做一个漫长的方式来传递一个整数列表并在动作中创建模型?
编辑:
我的行动看起来是这样的:
public RedirectToRouteResult Add(User user)
您是否使用了表单集合来检索复选框中的值 – 2013-04-10 15:29:06
我已更新我的问题,我正在尝试绑定到该对象 – Serberuss 2013-04-10 15:31:22
该操作需要用户对象,但您似乎正在传递角色,可以你张贴整个表单代码? – nik0lias 2013-04-10 15:38:19