这是about.cshtml来自默认MVC 3模板:

@{
    ViewBag.Title = "About Us";
}

<h2>About</h2>
<p>
     Put content here.
</p>

我希望在About.cshtml,但显然不是。

我看了看global.asaxweb.config,但我找不到About.cshtml文件与_ViewStart文件的布局"链接"。

一切都按预期工作,我想知道引擎盖下发生了什么…

答案

Scottgu的博客

从ASP.NET MVC 3 Beta版本开始,您现在可以添加一个名为_viewstart.cshtml(或_viewStart.vbhtml的VB)的文件,该文件在您的项目的\ Views文件夹下方:

_viewStart文件可用于定义要在每个视图渲染开始时要执行的通用视图代码。例如,我们可以在我们的_viewstart.cshtml文件中编写代码,以编程为每个视图的布局属性设置为sitelayout.cshtml文件,默认情况下:

因为此代码在每个视图的开头执行,所以我们不再需要在任何单个视图文件中明确设置布局(除非我们想覆盖上述默认值)。

重要:因为_viewStart.cshtml允许我们编写代码,因此我们可以选择使我们的布局选择逻辑不仅仅是基本属性集。例如:我们可以根据访问网站的设备类型,并为这些设备提供手机或平板电脑优化的布局,以及针对PC/笔记本电脑的桌面优化布局。或者,如果我们构建了在多个客户中使用的CMS系统或共享应用程序,则可以根据客户(或其角色)在访问网站时选择不同的布局。

这使得很多UI灵活性。它还使您可以更轻松地写入视图逻辑,并避免在多个位置重复它。

也看

来自: stackoverflow.com