2011-04-19 37 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会将问题清晰分离,您可以在第一次加载该特定操作后缓存使用的数据,然后再从缓存数据提供进一步的请求。