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