我想在Razor中指定(在一个地方)默认布局页面,以便我可以删除这:
@{ LayoutPage = "~/Views/Shared/_Layout.cshtml"; }
从每个.cshtml文件我有。但我不知道怎么…任何想法?我使用Razor引擎从ASP.NET MVC 3预览1。
解决方法
在MVC 3预览1中没有简单的方法做到这一点。这是在即将到来的版本中将要解决的预览位的限制。不幸的是_init.cshtml文件不工作在MVC3的这个预览,所以你不能跟随网页模式。
有两种方式,我可以想到,使其工作(虽然两者都不是最佳的)
>编写自己的从WebViewPage派生的页面基类,并在构造函数中设置正确的布局…但是在这种情况下,您必须在每个视图中指定一个@inherits指令。>在你的action方法中设置布局覆盖(使用View(string viewName,string masterName)override)。你可以编写一个中间控制器基类,它将有一个帮助方法来保存自己重复布局无处不在的麻烦。