0

以下帖子中的答案:

具有角色 MVC3 的注册表单,错误:ViewData 项的类型为“system.sting”必须为“IEnumerable<selectlistitem>

为我工作很棒。但是,如果我必须将用户分配到 Asp .Net 角色列表,这将如何改变?

我希望能够遍历可用角色列表并呈现复选框,当用户从模型中单击更新时,如何查看用户分配给的角色?(我希望这个问题有意义)。

提前致谢。

4

1 回答 1

1

好的,我在不使用 html 助手的情况下解决了它。 我仍在寻找 HTML 助手的答案:)。

模型

    public class RolesModel
    {
      public string Email { get; set; }
      public string[] Roles { get; set; }
    }

启动视图的控制器代码

    public Action Result ShowRoles()
    {
      model.Roles = Roles.GetAllRoles();
    }

剃刀视图

    @foreach (string role in Model.Roles)
    {
      <input type="checkbox" name="Roles" value="@role" checked="@Roles.IsUserInRole(@role)"       />@role
    }

更新视图的控制器代码

    public ActionResult AccountManagement()
    {
      if (Roles.GetRolesForUser().Length > 0 )
        Roles.RemoveUserFromRoles(model.Email, Roles.GetRolesForUser());

      if (model.Roles != null && model.Roles.Length > 0)
        Roles.AddUserToRoles(model.Email, model.Roles);
    }

与往常一样,如果有更清洁/更好的方法,请告诉我。

于 2012-04-13T13:59:11.657 回答