2010-05-25 70 views
1

我需要一些數據在網站內的所有視圖頁面上可用。數據來自提供給所有路由的參數,我想獲取該參數並獲取相應的數據,並使其適用於所有視圖(包括主頁面)。所有頁面的Mvc視圖頁面和自定義數據

這將是很好,如果它可以在一個地方完成。

我需要做些什麼來獲得該功能,甚至可以完成?

Greetz, Richard。

回答

0

最簡單的(可能不是最好的)是寫一個基本的控制器類

1)處理以下事件之一來完成這項工作:

  • OnActionExecuted
  • OnActionExecuting
  • OnResultExecuted
  • OnResultExecuting

2)設置您想要在ViewData中可用的數據。

3)使用視圖中的ViewData。

4)您的所有控制器必須從您的自定義基本控制器繼承。

這可能不是所有方法中最好的,因爲我通常試圖避免像瘟疫一樣的遺傳,但它會起作用。其他選項。

1)在ActionFilter中實現它,並確保將該屬性添加到所有ActionMethods。

2)使用類似MVC Turbine的東西來定義ActionFilter的觸發器,以便在您的ASP.NET MVC應用程序中使用所有ActionMethods。

+0

謝謝,viewdata的問題在於它沒有輸入,因此每次我需要數據時都必須進行轉換。有沒有解決方案? – Richard 2010-05-25 15:55:03

+0

MVCContrib項目可能有幫助,因爲他們已經編寫了一組擴展,允許您以強類型的方式從ViewData中提取數據(IDictionary )。 http://mvccontrib.codeplex.com/documentation?referringTitle=Home – 2010-05-25 16:48:10