使用ASP.Net MVC3用C#填充ViewBag上佈局視圖
我有我的頁面佈局上旋轉廣告設置。 它由包含隨機廣告的ViewBag填充。 唯一的問題是我需要在每個控制器中包含數據庫視圖包代碼並使其在每個頁面上都能正常工作。
有沒有一種方法來填充ViewBag,無論我的控制器或操作?
使用ASP.Net MVC3用C#填充ViewBag上佈局視圖
我有我的頁面佈局上旋轉廣告設置。 它由包含隨機廣告的ViewBag填充。 唯一的問題是我需要在每個控制器中包含數據庫視圖包代碼並使其在每個頁面上都能正常工作。
有沒有一種方法來填充ViewBag,無論我的控制器或操作?
我想你可以創建一個BaseController,你的所有控制器都可以繼承它來爲你處理這個事情。然後,您可能會覆蓋BaseController的OnActionExecuting事件並將該廣告加載到ViewBag中。
ViewBag
是控制器基類的成員,所以你可以用任何方法引用它。所以,你可以設置填充它一個共同的功能,然後從實際的操作方法稱之爲:
private void PopulateViewBag() {
ViewBag.SomeThing = SomeOtherThing();
}
控制器上的方法不有要行動,這只是一個階級畢竟。
一種方法是創建所有的控制器的(abstract
?)的基類,並有注入必要的ViewBag
(例如通過重寫ControllerBase.Execute
)。
另一種方法是create a global action filter也是這樣。