列表ASP.NET身份中用户的角色名称



我正在尝试列出所有用户。我还想列出属于用户的角色。但是我只能为用户获得角色ID。但是我想列出我所有的角色名称而不是角色id。我怎样才能做到这一点?这是我的代码:

public async Task<ActionResult> Index()
{
    var user = await _context.Users.Include(x=> x.Roles).ToListAsync();
    ViewBag.Roles = await _context.Roles.ToListAsync();
    return View(user);
}

在视图中

@model List<Projectname.Web.Models.ApplicationUser>
@foreach (var c in Model) 
{
    <tr>
        <td>@c.UserName</td>
        <td>@c.Email</td>
        <td>@c.LockoutEnabled</td>
        @foreach (var role in c.Roles)
        {
            <td>@role.RoleId</td>
        }
    </tr>
}

p.s我正在使用asp.net身份

如果您要扮演每个用户的角色,您是否不应该仅从var user访问它?换句话说,您只需要使用user.Roles

由于您已经在名为用户的变量下获取了一个用户列表。以复数形式。在您的情况下,应该看起来像:

var users = await _context.Users.Include(x=> x.Roles).ToListAsync();

现在回到要点...现在您已经用角色Include获取了users,假设您的Model是用户的收藏,则看起来像这样。

@foreach (var user in Model) 
{
    <tr>
        <td>@user.UserName</td>
        <td>@user.Email</td>
        <td>@user.LockoutEnabled</td>
        @foreach (var role in user.Roles)
        {
            <td>@role.Id</td>
            <td>@role.Name</td>
        }
    </tr>
}

相关内容

  • 没有找到相关文章