ASP.NET MVC 5从特定角色获取用户

Sam*_*Sam 0 c# asp.net asp.net-mvc-5

如何显示特定角色中所有用户的列表.

我将IdentityRole模型附加到我的View,并为其分配了"Admin"角色.到目前为止我只能得到UserId.

@model Microsoft.AspNet.Identity.EntityFramework.IdentityRole

@Html.DisplayNameFor(model => model.Name) // Shows 'Admin'

@foreach (var item in Model.Users)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.UserId)
        </td>
    </tr>
}
Run Code Online (Sandbox Code Playgroud)

一种可能的解决方案是在控制器中创建用户列表并将其附加到视图.问题是我还需要角色本身的数据.

Moh*_*our 7

如果您使用的是ASP.NET Identity 2:

public ActionResult UserList(string roleName)
{
    var context = new ApplicationDbContext();
    var users = from u in context.Users
        where u.Roles.Any(r => r.Role.Name == roleName)
        select u;

    ViewBag.RoleName = roleName;
    return View(users);
}
Run Code Online (Sandbox Code Playgroud)

在视图中:

@model Microsoft.AspNet.Identity.EntityFramework.IdentityUser // or ApplicationUser

@Html.DisplayNameFor(model => ViewBag.RoleName) // Shows 'Admin'

@foreach (var item in Model.Users)
{
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Id)
        </td>
       <td>
            @Html.DisplayFor(modelItem => item.UserName)
        </td>
    </tr>
}
Run Code Online (Sandbox Code Playgroud)