使用MVC4为Razor中的Asp.Net角色创建复选框

时间:2012-04-12 16:10:16

标签: razor html-helper roles asp.net-mvc-4 checkboxfor

以下帖子中的答案:

Registration form with roles MVC3, Error: ViewData item is of type "system.sting" must be "IEnumerable<selectlistitem>

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

我希望能够遍历可用角色列表和渲染复选框,以及如何在模型中单击更新时查看用户分配的角色? (我希望这个问题有道理。)

提前致谢。

1 个答案:

答案 0 :(得分:1)

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

模型

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

启动视图的控制器代码

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

Razor View

    @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);
    }

如果有更清洁/更好的方法,请随时告诉我。