可配置的默认视图布局

时间:2012-06-18 09:53:23

标签: asp.net-mvc layout razor

在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引擎类似的代码?

1 个答案:

答案 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>

另一种可能性是编写一个自定义剃刀视图引擎,您可以在其中动态设置布局。