2

在 Asp.net MVC Razor 中,我们可以使用该_ViewStart.cshtml文件来定义视图的默认布局。这很好,但是为什么我们在设置中丢失了 web 表单引擎可用的 web.configsystem.web > pages.masterPageFile设置?

为什么这很重要?因为 web.config 允许自动环境转换。

手动解决方案

当然,我们可以将默认布局名称放入其中appSettings,并在_ViewStart.cshtml或者如果我们有特定于应用程序的配置部分添加其他属性,这会使事情更加清晰和优美......

但是还有其他不包含代码的方法吗?

Asp.net MVC 团队应该将layoutFile配置设置添加到system.web.webPages.razor > pages元素,不是吗?

主要问题是

我是否错过了内置但我不知道的东西?类似于 WebForms 引擎的完全不需要代码的东西?

4

1 回答 1

3

Asp.net MVC 团队应该将 layoutFile 配置设置添加到 system.web.webPages.razor > pages 元素,不是吗?

随意在 MS Connect 网站上开票。

但是,在等待开发团队分析您的票证并可能将其添加到 ASP.NET MVC 框架和网页的未来版本中时,您始终可以在您的 中执行以下操作_ViewStart.cshtml

@{
    Layout = ConfigurationManager.AppSettings["Layout"];
}

然后在 web.config 文件中定义布局:

<appSettings>
    <add key="Layout" value="~/Views/Shared/_Layout.cshtml" />
    ...
</appSettings>

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

于 2012-06-18T09:58:06.257 回答