2011-05-28 41 views
0

我想在我的應用程序中訪問(當前登錄的)用戶對象到所有控制器和視圖。例如,我想將用戶名稱放在我的「側邊欄」中,但不知道如何訪問用戶對象,因爲它存儲在另一個控制器中。提前致謝。把控制器範圍的可訪問對象放在哪裏

回答

0

您可以使用Html.Action輔助方法。你可以定義一個視圖模型,它將包含你想要顯示的有關當前登錄用戶的所有必要信息(例如他的用戶名),然後有一個控制器動作,它將使用控制器的User屬性填充這個視圖模型並將其傳遞給相應的局部視圖。然後你的母版頁中您將包括使用Html.Action助手這樣的信息:

<div id="sidebar"> 
    @Html.Action("Index", "Users") 
</div> 

這將調用UsersControllerIndex行動:

public class UsersController 
{ 
    public ActionResult Index() 
    { 
     UserViewModel model = ... 
     return PartialView(model); 
    } 
} 
+0

感謝您的快速響應。但這是否意味着我必須每次生成自己的方法+局部視圖來呈現名稱或鏈接? – user1320304 2011-05-28 16:49:17

+0

@ user772945,在我的回答中,我舉例說明了在所有頁面上顯示當前登錄用戶名的情況。我真的不明白你的意思*渲染一個名字或鏈接*?你是在談論一個AJAX控制器的動作,將更新一部分的DOM?這將取決於你想要達到的目標。 MVC中有許多不同的技術適用於不同的場景。 – 2011-05-28 17:08:45

+0

不,我不是在談論AJAX--我的意思是:如果我想在用戶名下方顯示一個「編輯我的個人數據」鏈接幾行,並且鏈接應指向/ users/edit/id) ?我應該重複這個程序並創建一個只輸出一個鏈接的部分嗎? – user1320304 2011-05-28 17:38:08