我正在尝试列出所有用户。我还想列出属于用户的角色。但是我只能为用户获得角色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>
}