0

我有一个视图模型,它公开了一些公共虚拟 ICollection 角色 { get; 放; }

这对于恢复用户所属的角色非常有用。但是如何从表单更新用户的角色。

为了测试,我尝试添加一个名为“角色”的隐藏字段并输入“管理员”和它的 GUID,因为它是发送回服务器的值:

<input type="hidden" name="Roles" value="Admin" />
<input type="hidden" name="Roles" value="7feab829-b86c-4a94-90bf-f35e9ce04b01" />

但是,当传递到服务器时,我可以看到这种方式会创建无效的模型状态——任何建议将不胜感激!

4

1 回答 1

0

根据您的评论,我看到了一些简单的解决方案。首先,删除隐藏的输入字段。那些不会给你买任何东西,只会在你去验证模型时伤害你

  1. 利用角色的下拉列表并将其传递回您的模型。该值应该是选择。
  2. 正如您提到的,将它们作为字符串传递并在控制器中解析
  3. 使用径向选项,每个选项都有一个唯一的 ID。传递 ID 并将该 ID 对应到控制器中的值。

在控制器中,您是绝对正确的。获取角色并调用 Roles.AddUserToRole()。

我认为您已经走在正确的轨道上:)。

于 2013-06-10T16:35:17.943 回答