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

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

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

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

我已经查看了global.asaxweb.config,但我无法找到About.cshtml文件是如何与_ViewStart文件中的布局"链接"的.

一切正常,我只是想知道引擎盖下发生了什么...

推荐答案

ScottGu's blog:

从ASP.NET MVC 3 Beta发行版开始,您现在可以添加文件 名为_ViewStart.cshtml(或VB为_ViewStart.vbhtml)的 \VIEWS项目的文件夹:

_ViewStart文件可用于定义您需要的通用视图代码

因为这段代码在每个视图的开头执行,所以我们不再

重要提示:因为_ViewStart.cshtml允许我们编写代码,所以我们 可以 Select 性地使我们的布局 Select 逻辑更加丰富,而不仅仅是 基本属性集.例如:我们可以改变布局模板 我们根据访问网站的设备类型来使用- 并拥有针对这些设备的手机或平板电脑优化布局, 针对PC/笔记本电脑的台式机优化布局.或者如果我们正在建造一个 跨多个客户使用的CMS系统或通用共享应用 我们可以根据客户 Select 使用不同的布局(或 他们的角色).

这使得UI具有很大的灵活性.它还可以让你获得更多

另见this.

.net相关问答推荐

如何在PowerShell中隐藏任务延迟输出?

Puppeteer LaunchAsync 在未打开浏览器的情况下挂起

竖线在 PropertyGroup .csproj 文件中的含义

AppShell - 返回导航失败,匹配的路由不明确......但我只注册了一次路由

.NET MAUI 的登录页面

FileHelpers 未使用正确的日期格式

CustomControl 计算自己的宽度和高度 - 使用 bounds.Height=0 调用 ArrangeOverride

如何从标头中检索基本身份验证凭据?

ICommand MVVM 实现

.net 服务总线建议?

如何使用 Android 使用 WCF 服务

迭代器和枚举器的区别

Iif 在 C# 中等效

DataGridView 在我的两个屏幕之一上的可怕重绘性能

Moq - 不可覆盖的成员不能用于设置/验证表达式

在 C# 中,为什么不能将 List 对象存储在 List 变量中

使 HashSet 不区分大小写

如何在 Dapper.Net 中编写一对多查询?

对构造函数进行单元测试重要吗?

有没有一种简单的方法来判断 .NET Framework 版本?