显示角色和应用程序用户的列表视图
本文关键字:列表 视图 用户 应用程序 角色 显示 | 更新日期: 2023-09-27 18:22:02
我是MVC5的新手,正在尝试显示用户详细信息和他们所处角色的名称的列表视图。我已经使用MVC Identity设置了角色。
下面是我的ViewModel
public class UserRoleViewModel
{
public string UserRoleVMId { get; set; }
public string Title { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public string Email { get; set; }
public string Role { get; set; }
public bool AccountEnabled { get; set; }
}
我的控制器:
public ActionResult Index()
{
var model = (from d in db.Users
select new UserRoleViewModel()
{
UserRoleVMId = d.Id,
Title = d.Title,
FirstName = d.FirstName,
Surname = d.Surname,
Email = d.Email,
AccountEnabled = d.AccountEnabled,
Role = d.Role.Name
}).ToList();
return View(model);
}
我不确定如何显示角色名称,并且收到错误消息
does not contain the definition for Role and no extension method Role
在
Role = d.Role.Name
如有任何帮助,将不胜感激
感谢
您可以使用GetRoles
方法:
viewModel.RolesForThisUser = UserManager.GetRoles(userId).ToList();
当您想要显示一个用户的详细信息时,这很有用。
您应该使用属性Roles,因为一个用户可以有多个角色:
public ActionResult Index()
{
using(var context = new IdentityDbContext()){
viewModel =
context.Users
.Include("Roles")
.Select(u =>
new UserRoleViewModel {
UserRoleVMId = u.Id,
Title = u.Title,
FirstName = u.FirstName,
Surname = u.Surname,
Email = u.Email,
AccountEnabled = u.AccountEnabled,
Role = u.Roles.First().Role.ToString()
}
).ToList();
}
return View(viewModel);
}
您可以使用此代码
return view(db.Users.ToList());
在你看来,使用
@model IEnumerable<YourProjectName.Models.Users>
并使用此foreach显示内容
@foreach(var item in Model){<p>@item.Title</p> and etc }