所以我正在开发我的第一个ASP.NET COre 3.0 MVC应用程序,而我刚刚进入Identity
,现在我想在列表中显示用户角色,这就是我所做的。
@model CoreBuddyLite.ViewModel.UserManagementIndexViewModel
<tbody>
@foreach (var user in Model.Users)
{
<tr>
<td>@user.UserName</td>
</tr>
}
</tbody>
如果我尝试做@user.R
,则不存在一个或多个角色。我有90%的把握至少在ASP.NET Core 1.0中确实存在。
我如何正确地将角色分配给用户?
public class UserManagementIndexViewModel
{
public List<UserAccount> Users { get; set; }
}
并且我不必将其作为属性添加到我的UserAccount类中,因为它是从IdentityUser派生的
public class UserAccount : IdentityUser
{
}
答案 0 :(得分:1)
IdentityUser
和IdentityRole
是两种不同的类型。
正如JamesS指出的,Users
和Roles
之间存在一个复合联接。您可以在表AspNetUserRoles
中找到它。它将AspNetUsers
和AspNetUserRoles
表链接在一起。
我认为Entity Framework不是ASP.NET CORE 3的标准配置,但是如果您已经在使用它,则可以在控制器中使用_context
对象(ApplicationDbContext
)来构建您的使用流畅的API和Include()
和ThenInclude()
方法列出。
否则,您可能想要按照建议去存储过程或查看SQL中的路由。
但是,请记住,ApplicationUser
可能扮演许多角色,因此剃刀视图必须包含嵌套的foreach()
循环。
使用版本3并非出于胆小,我很欣赏您的勤奋。