我有以下项目结构:
...
- /区域/AreaN/Views/ControllerName/Index.
有什么办法强制所有区域都使用_Layout as a 基地布局?
有什么方法可以在不添加的情况下做到这一点_ViewStart文件(例如,通过路由配置)?
也可以看看:
如何在 ASP.NET MVC 3 razor ViewStart 文件中指定不同的布局? https://stackoverflow.com/questions/5161380/
您只需添加一个名为:
_ViewStart.cshtml
在每个区域视图文件夹下:
/Areas/Area1/Views/_ViewStart.cshtml
并编辑文件以指向根布局,如下所示:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
为了使其工作,您不必在视图的布局属性中指定值,如果这样做,您将覆盖全局布局
注意:正如托尼提到的,你could编辑每个视图的布局属性以指向根布局,但是这不是推荐的方法,因为您会将视图与布局耦合并更改它会很痛苦
Edit 1
如果您想使用代码来设置默认视图的布局,也许您应该考虑编写自定义视图引擎。
尝试用谷歌搜索自定义RazorViewEngine
and RazorView
这篇文章可能是一个很好的起点
http://weblogs.asp.net/imranbaloch/archive/2011/06/27/view-engine-with-dynamic-view-location.aspx http://weblogs.asp.net/imranbaloch/archive/2011/06/27/view-engine-with-dynamic-view-location.aspx
我还没有做过这样的事情,但我希望我能为你指明正确的方向
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)