2015-08-28 77 views
1

我工作的一個AdminPortal,我有一個數據庫設置爲這樣:MVC5剃刀,顯示相關表中的值

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

局部視圖如何? – Shoe

+0

急切加載您要使用的屬性,並使用顯示/編輯器模板。 –

+0

好吧,我可以通過在Details.cshtml頁面上執行一個foreach循環來顯示我的角色。現在工作很好。現在我的下一步是創建一個頁面,允許直接從此頁面添加/刪除角色。有什麼想法嗎? – NocFenix

回答

0

我找到了答案上一種類似的帖子的用戶的所有角色:

https://stackoverflow.com/a/23536667/3534314

基本上我有創建一個包含每個模型實例的視圖模型,從那裏我可以在一個視圖中獲得所需的所有信息。

0

使用UserManager.GetRoles將返回

ViewBag.RolesForThisUser = UserManager.GetRoles(user.Id);