在Asp.net MVC Razor中,我们可以使用_ViewStart.cshtml
文件来定义视图的默认布局。这很好,但为什么我们放弃了system.web > pages.masterPageFile
设置中的Web表单引擎可用的web.config设置?
为什么这很重要? 因为web.config允许自动环境转换。
当然,我们可以将默认布局名称放在appSettings
中,并在_ViewStart.cshtml
中引用它,或者如果我们有特定于应用程序的配置部分添加额外的属性,这会使事情更加清晰和完善...
但是还有其他方法不包含代码吗?
Asp.net MVC团队应该将layoutFile
配置设置添加到system.web.webPages.razor > pages
元素,不应该吗?
我是否遗漏了内置的内容而我不知道?什么东西不需要与WebForms引擎类似的代码?
答案 0 :(得分:3)
Asp.net MVC团队应该将layoutFile配置设置添加到 system.web.webPages.razor>页面元素,不应该吗?
随意在MS Connect网站上打开票证。
但是在等待开发团队分析您的票证并且可能在未来版本的ASP.NET MVC框架和WebPages中添加时,您可以始终在_ViewStart.cshtml
中执行以下操作:
@{
Layout = ConfigurationManager.AppSettings["Layout"];
}
然后在web.config文件中定义布局:
<appSettings>
<add key="Layout" value="~/Views/Shared/_Layout.cshtml" />
...
</appSettings>
另一种可能性是编写一个自定义剃刀视图引擎,您可以在其中动态设置布局。