小编典典

_ViewStart.cshtml 布局文件在哪里以及如何链接?

all

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

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

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

我希望在 _ViewStart 文件中可以找到对 _ViewStart 文件的引用About.cshtml,但显然不是。

我查看了global.asaxand web.config,但我找不到About.cshtml文件是如何与 _ViewStart
文件中的布局“链接”的。

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


阅读 61

收藏
2022-06-29

共1个答案

小编典典

来自ScottGu 的博客

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

_ViewStart 文件可用于定义您希望在每个视图渲染开始时执行的通用视图代码。例如,我们可以在 _ViewStart.cshtml
文件中编写代码,以编程方式将每个 View 的 Layout 属性默认设置为 SiteLayout.cshtml 文件:

因为这段代码在每个视图的开头执行,我们不再需要在任何单独的视图文件中显式设置布局(除非我们想覆盖上面的默认值)。

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

这使得 UI 具有很大的灵活性。它还允许您更轻松地编写一次视图逻辑,并避免在多个地方重复它。

也看到这个

2022-06-29