我有一个表单来添加一个带有一些用户角色复选框的新用户。我的操作中有一个名为 User 的模型,它具有以下属性:
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 的值并将其传递给 Roles 来完成此操作,从而部分完成角色类并将角色对象的 Name 字段留空。一个示例复选框如下所示:
<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)