【发布时间】:2017-05-29 20:08:08
【问题描述】:
我想在 ASP.NET MVC5 中显示我的用户列表,并在列中显示用户拥有的每个角色(逗号分隔)。
所以我有一个简单的 UserViewModel:
public class UserViewModel
{
public string UserName { get; set; }
public string Email { get; set; }
public string AdatlapNev { get; set; }
public string Roles { get; set; }
}
在我看来,模型是:@model IEnumerable<UserViewModel>
问题在于角色的显示。我试着这样做:
public ActionResult UserList()
{
return View(db.Users.Select(u => new UserViewModel
{
AdatlapNev = u.Adatlap == null ? "NULL" : u.Adatlap.Nev,
Email = u.Email,
UserName = u.UserName,
Roles = u.Roles.Select(r => db.Roles.Find(r.RoleId).Name).Aggregate((s1, s2) => s1 + ", " + s2)
}
));
}
但它不起作用。我收到System.ArgumentException,它说我不能在这里使用Find 方法。
感谢您的帮助!
【问题讨论】:
-
未经测试,但尝试类似
Roles = String.Join(", ", u.Roles.Select(r => r.Name))。 -
@SteveGreene 'IdentityUserRole' 类没有'Name' 参数
标签: asp.net-mvc entity-framework linq