我正在使用AdminPortal,我有一个数据库设置:
User 1:N UserRole N:1 Role 1:N RolePage N:1 Page
因此,用户通过UserRole表连接到角色,并通过RolePage表将角色连接到特定页面。
我使用MVC5和实体框架来制作我的模型和控制器。
在我的UsersController中,我希望详细信息也显示角色,它目前没有。从这里,某人应该能够选择编辑,然后为特定用户添加/删除角色。
当我尝试使用现有的user.UserRoles时:
@Html.DisplayNameFor(model => model.UserRoles)
我得到了输出:
System.Data.Entity.DynamicProxies.Role_2928XXXXXXXXXXXXX
我希望看到分配给他们的角色列表(即管理员,销售人员等)。最好的方法是什么?
以下是我的控制器的详细信息部分:
// GET: Users/Details/5
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
User user = db.Users.Find(id);
if (user == null)
{
return HttpNotFound();
}
return View(user);
}
答案 0 :(得分:0)
使用UserManager.GetRoles
将返回用户的所有角色
ViewBag.RolesForThisUser = UserManager.GetRoles(user.Id);
答案 1 :(得分:0)
我在类似的帖子上找到了答案:
https://stackoverflow.com/a/23536667/3534314
基本上我必须创建一个视图模型来保存我的每个模型的实例,从那里我能够在一个视图中获得我需要的所有信息。