2011-04-19 32 views
2

我用剃刀使用asp.net mvc 3.0。ViewModel在母版頁中?

我想知道是否可以爲我的母版製作視圖模型。我在母版頁中有一些動態數據,所以我可能必須爲我的所有控制器創建一個「基類」,但我寧願強鍵入數據,然後查看數據/查看包。

所以這可以做到嗎?

+0

[如何在ASP.NET MVC中使用基本控制器創建強類型主頁面](http://stackoverflow.com/questions/768236/how-to-create-a-strongly-typed- master-page-using-a-base-controller-in-asp-net-mvc) – jfar 2011-04-19 17:50:12

回答

4

您可以將所有視圖模型從基本視圖模型繼承,該模型將包含所有常用字段。

或者,您可以使用一個Custom Action Filter,它會將一些對象放在您的母版頁總會期望的視圖數據中。這個動作過濾器也可以用來填充視圖模型基類中的公共字段。

+2

只要給@ chobo2提供一個參考資料,我所鏈接到的答案比這更清楚地解釋了所有的部分。 – jfar 2011-04-19 18:17:42

0

我會建議使用RenderAction,而不是讓所有視圖模型都從中繼承基礎視圖模型。我想你想在你的母版頁中使用的viewmodel最有可能包含導航數據(菜單或左欄等)。如果是這種情況,RenderAction會將問題清晰分離,您可以在第一次加載該特定操作後緩存使用的數據,然後再從緩存數據提供進一步的請求。