我正在使用带有 Razor 视图引擎的 MVC 3。我想在部分视图内的 ViewBag 中设置一些值,并希望在我的 _Layout.cshtml 中检索这些值。例如,当您设置默认的 ASP.NET MVC 3 项目时,您会在“/Views/Shared”文件夹中获得一个 _Layout.cshtml 文件。在那个 _Layout.cshtml 中,页面标题设置如下:
<title>@ViewBag.PageTitle</title>
然后在“/Views/Home/About.cshtml”视图中修改ViewBag的内容:
@{
ViewBag.Title = "About Us";
}
这工作正常。呈现关于视图时,页面标题为“关于我们”。所以,现在我想在 About 视图中呈现 Partial 视图,并且我想在 Partial 视图中修改 ViewBag.Title。("/Views/Shared/SomePartial.cshtml")
@Html.Partial("SomePartial")
在此部分视图中,我有以下代码:
@{
ViewBag.Title = "About Us From The Partial View";
}
当我调试这段代码时,我看到 ViewBag.Title 被设置为“关于我们”,然后在部分视图中我看到它被重置为“从部分视图中关于我们”,但是当代码点击 _Layout.cshtml 时回到“关于我们”。
这是否意味着如果在 Partial 视图中修改了 ViewBag 的内容,这些更改将不会出现(可访问)在主视图(About.cshtml)或 _Layout.cshtml 中?
提前致谢!