在 ASP.NET MVC 3 Razor 中,您可以指定页面标题:
@{
ViewBag.Title = "Title";
}
现在,假设我们有一个布局页面:
<title>@ViewBag.Title | Website</title>
当 ASP 渲染一个页面时,它需要输出一些布局页面 HTML,然后是视图 HTML,然后是布局页面的其余部分 HTML。
为了输出布局页面 HTML 的前半部分,ASP.NET 需要知道ViewBag.title
视图中赋予的值。因此,ASP.NET 需要解析视图中的 Razor 代码。但是,ASP.NET 还不能输出视图的 HTML 代码,因为它仍在输出布局页面的 HTML 代码。那么 ASP.NET 是否将视图的 HTML 输出存储在缓冲区中?这似乎是一种不好的做法,但我想不出任何其他方法可以有效地将视图的标题放入布局页面输出中。