使用没有角色的用户呈现 SelectList

Posted

技术标签:

【中文标题】使用没有角色的用户呈现 SelectList【英文标题】:Render SelectList with users with no roles 【发布时间】:2020-12-28 01:58:49 【问题描述】:

我有一个来自 Identity 的所有用户的 Select List,它从 ApplicationUser 中提取 CompanyName。

<select asp-for="Contact.GeneralClientName" class="custom-select mr-sm-2" asp-items="@(new SelectList(Model.Users, "Id", "CompanyName"))">
    <option selected="selected" value="0">Please Select</option>
</select>

在此列表中,我需要省略具有以下两个角色之一的用户:ContactManagersContactAdministrators

目前我正在使用以下方式查询用户:

Users = await UserManager.Users.ToListAsync();

我想过给每个新用户一个角色,然后根据它过滤列表,但在这一点上,这将是一个很大的重做。我只需要隐藏 2 个用户,每个用户都有一个相关的角色,非常感谢任何帮助。

谢谢,

【问题讨论】:

【参考方案1】:

您可以尝试过滤具有特定角色的用户

var result = await UserManager.Users
   .Include(user => user.Roles)
   .Where(user => user.Roles.Any(r => r.Name == "ContactManagers" || r.Name == "ContactAdministrators"))
   .ToListAsync();

【讨论】:

您的解决方案看起来很有希望。我已经实现了它,但我现在有另一个问题。为了让我使用 .Roles,我需要生成属性或字段吗?我在 include 子句中的 .Roles 下看到一条红线。 如果您使用 .NET Core,请使用 this 方法

以上是关于使用没有角色的用户呈现 SelectList的主要内容,如果未能解决你的问题,请参考以下文章

WPF的图形呈现

使用ajax jquery将呈现的值设置为下拉列表

如何渲染组件取决于角色

Django:实现多个用户级别/角色/类型

在 ASP.NET Core 的 SelectList 中显示数据

与基于角色和权限呈现组件相关的设计模式或架构?