使用 MVC 5 和 C#。前端允许按名称选择多个角色并将它们作为 CSV 字符串发送到控制器。然后,控制器按用户的角色属性过滤用户。前端通过Role.Name属性引用角色,尽管保存在用户配置文件中的角色由引用Role.Id。例如前端提交, "Customer,Employee,Administrator"在控制器中,我只需要选择具有这些角色的用户。// Get usersvar filteredRecords = UserManager.Users.AsQueryable();// Get requested roles (HTTP POST)string[] roleNames = model.RoleNames.Split(new string[] {","});我可以得到一个人Role.Id:RoleManager.Roles.FirstOrDefault(r => r.Name == roleName).Id如何有效地使用 LINQ/Lambda 转换roleNames为数组或列表,roleIds然后如何使用该数组/列表仅过滤包含在这些角色中的用户?
2 回答
幕布斯7119047
TA贡献1794条经验 获得超8个赞
也许是这个;
var reqRoles = model.RoleNames.Split(new string[] {","}).ToList();
var findRoles = RolesManager.Roles.Where(r => reqRoles.Contains(r.Name)).Select(r => r.Id).ToList();
然后您可以通过角色 ID 查找用户。
用手机写,抱歉可能有语法错误。
- 2 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消