2009-08-24 54 views
1

我正在構建一個監視其他系統的應用程序。現在我想實現局部視圖,稱爲「狀態」的用戶控件。這種控制應顯示狀態信息有關application.Like:將數據傳遞給視圖。始終通過viewData?

用戶登錄,

多少個系統聯機,

最新活動。

這個局部視圖應該在幾乎所有其他視圖中呈現。我如何將這些信息傳遞給觀點?

我不想寫

Wiewdata[「SystemsOnline」] = Helpers.CountSystemsOnline() 
Wiewdata[「SystemLatestActivity」] = ……………… 
在我所有的行動

我可以寫一些類似Html.RenderPartial(../ Shared/Status)的拳頭轉到添加viewdata的動作嗎?

或者我應該直接在視圖中通過hepler訪問信息嗎?

我注意到defult LogOnUserControl視圖使用Page.User.Identity.Name直接訪問該數據。

什麼時候可以不通過數據通過viewdata控制器?

回答

2

你必須爲此目的使用ViewData類。我不推薦代替

但是您不需要手動通過相同的數據每的操作。只需在您的基本控制器中執行以下操作:

protected override void OnActionExecuted(ActionExecutedContext context) { 
    base.OnActionExecuted(context); 
    if (context.Result is ViewResult) { 
     // Pass the systems online to all views 
     ViewData[「SystemsOnline」] = Helpers.CountSystemsOnline(); 
    } 
} 

只有幾行代碼,您可以隨處使用它。

相關問題