2010-11-09 133 views
1

假设我需要在应用程序的每个页面上打印记录的用户。部分视图或模型继承

目前,我同型号继承下去,使用填充用户在我基础模型一个ActionFilter,并显示它:(使用DisplayTemplate)

<% = Html.DisplayFor(x => x.CurrentUser) %> 

怎么样使用PartialView,叫使用

<% = Html.Action("UserName", "BaseController") %> 

难道这简化事情小到中等(20款)的应用有点母版?

回答

2

我觉得BaseViewModels怪兽不应该允许存在。我想不出一种情况,他们不会因为各种页面所需的多余逻辑而变得臃肿。

RenderAction()自MVC 1和MVC 3,它终于得到全输出缓存支持因为你获得与RenderAction一大堆composibility的,你不与ViewModelBase我喜欢它得到很长的路要走。

还要考虑到ViewModelBases还需要ViewMasterModelBases才能生成更加紧密耦合的逻辑,这些逻辑不容易换出。

1

如果你有一个基础视图模型(我认为是你指的是什么)和不介意每次给它分配或使用方法属性,在这里看到... BaseViewModel stuff

个人我不会介意有一个控制器方法,该方法返回包含用户信息的PartialView。然后,你就必须在你的Site.Master方法调用,无论你想标记显示的用户...

<% Html.RenderAction("UserInfo", "Home"); %>