如何在视图中的角色中注册用户名?

时间:2016-10-31 13:25:33

标签: c# asp.net-mvc razor asp.net-identity

我想在视图中显示分配给特定角色的所有用户:

@model IEnumerable<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>

<table id="tbrole" style="width:100%; border:dotted 1px; background-color:gainsboro; padding-left:10px;">

                @foreach (var role in Model)
                {
                    <tr>
                        <td style="width:100%; border:dotted 1px;">
                            @role.Name<br />
                            <ul>
                                @foreach (var userInRole in role.Users)
                                {
                                    <li>@usersInRole.UserId</li>
                                }
                            </ul>
                            @if (role.Name != "Admin")
                            {
                                @Html.ActionLink("Delete", "Delete", new { id = role.Id }, new { style = "float:right;", @class = "glyphicon glyphicon-trash" })
                            }
                        </td>
                    </tr>}
            </table>

如何使用UserId属性

访问用户模块(电子邮件,用户名,地址..等)

2 个答案:

答案 0 :(得分:0)

不建议将db模型绑定到视图,创建视图模型包含视图中所需的属性,并将其填充到控制器中并将其绑定到视图。

  • //获取角色和UserIds。
  • //使用Contains通过Roles.UsersIds获取用户。

答案 1 :(得分:0)

这解决了它:

var users = context.Users        
    .Where(x => x.Roles.Select(y => y.Id).Contains(roleId))
    .ToList();

原始答案:https://stackoverflow.com/a/23854281/6197785