Я хочу показать всех пользователей с указанным именем роли. То, что я делаю, это просто укажите имя роли в представлении. Если это имя существует, покажите всех связанных пользователей (это работает сейчас) или ничего не отобразите (исключения возникли здесь).
Вот мой код в контроллере:
public ActionResult ViewUser(string roleName)
{
var UsersContext = new ApplicationDbContext();
var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
if (roleManager.RoleExists(roleName))
{
var role = roleManager.FindByName(roleName).Users.First();
var usersInRole = UsersContext.Users.Where(u => u.Roles.Select(r => r.RoleId).Contains(role.RoleId)).ToList();
return View(usersInRole);
}
else
{
return View();
}
}
Вот код с несуществующим именем роли с именем «Рабочий» в представлении:
@Html.ActionLink("Manage User", "ViewUser", "Home", new { @roleName="Worker"}, new { style = "color:white" })
Следующий снимок экрана является результатом, когда в качестве имени роли указывается «Клиент», который существует в базе данных. Если я укажу другое несуществующее имя, результат не должен содержать список пользователей.