gpt4 book ai didi

c# - 列表 asp.net 身份中用户的角色名称

转载 作者:行者123 更新时间:2023-11-30 18:17:57 25 4
gpt4 key购买 nike

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

在 View 中

@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

因为您已经在名为 user 的变量下获取了一个用户列表...那么首先,如果您要保存一个列表、数组或任何形式的集合,您必须命名您的变量复数形式。在你的情况下它应该是这样的:

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>
}

关于c# - 列表 asp.net 身份中用户的角色名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com