我有一个遗留的asp.net应用程序,它有一个布局视图,它使用多次调用@Html.RenderAction
来从其他控制器/操作注入HTML片段。
其中一种操作方法呈现共享导航标签栏(深绿色),如下例所示(所有绿色阴影对象都在布局中)。页面的另一部分(也是深绿色)使用与导航选项卡完全相同的模型。
所以问题是这些Action方法会对页面进行相同的后端调用。在内容区域中也使用相同的模型,因此当仅需要一个视图时,进行3次相同的后端调用以呈现视图。应用程序中的所有页面都可以这样说。
因此,在导航的情况下,我想引入一个抽象基础ViewModel并强烈地将其键入Layout视图。然后我可以将@Html.RenderAction
更改为@Html.RenderPartial
并注入共享模型。
这看起来是一种明智的做法吗?如果在每个视图上指定了导航局部视图,我可以传递数据而无需强烈键入布局。话虽如此,有问题的数据在整个应用程序中都是,所以布局很有意义。
我想问题是我一直认为布局是普通应用程序的容器' chrome'它没有要求模型来呈现它(例如页脚,徽标,标题等)。有没有理由为什么布局的强类型错误/要避免?