在View with Identity中显示所有角色

时间:2015-05-26 00:34:18

标签: asp.net-mvc entity-framework-4 asp.net-identity

我试图显示数据库中存在的所有角色。所以在我的控制器中我得到了这个:

        public ActionResult RoleIndex()
    {
        foreach (string role in Roles.GetAllRoles().ToList())
        {
            System.Diagnostics.Debug.WriteLine(role);
            Console.Write(role);
        }
        return View();
    }

它显示了所有角色,因此它很好。但是现在我想在视图中显示这个,我该怎么做? ViewBag,ViewData?什么是最好的,因为我无法访问角色模型。

感谢pervence并抱歉我的英语= /

PokeRstarr

3 个答案:

答案 0 :(得分:1)

创建一个ViewModel类:

public class RoleIndexViewModel
{
    public List<string> Roles { get; set; }
}

然后在控制器中填充此类的Roles属性并将其返回到您的视图:

public ActionResult RoleIndex()
{
    var model = new RoleIndexViewModel { Roles = Roles.GetAllRoles().ToList() };
    return View( model );
}

在您的视图中,公开传递的模型并将其打印出来:

@model Namespace.RoleIndexViewModel
@{
    ViewBag.Title = "Roles";
}

@foreach(var role in Model.Roles)
{
    @role <br />
}

答案 1 :(得分:0)

使用View Model而不是ViewBag是一种很好的做法。 好的例子是here

答案 2 :(得分:-1)

将您的角色存储在ViewData中

ViewData["roles"] = [String[]] Roles.GetAllRoles();
return View("myView");

在您的视图中

<% foreach (string role in (string[] ViewData["roles"]) %>
<li><% role %>