从部分视图设置页面标题

时间:2012-07-16 18:08:11

标签: asp.net-mvc-3 razor viewbag

  

可能重复:
  Modifying MVC 3 ViewBag in a partial view does not persist to the _Layout.cshtml

我正在尝试从PartialView

设置pageTitle

这是我的代码:

PartialView模板:

@{
    ((WebViewPage)WebPageContext.Current.Page).ViewBag.Title = "Page title";
}

_Layout.cshtml:

<title> @ViewBag.Title</title>

怎么做?

1 个答案:

答案 0 :(得分:5)

这不是部分应该做的事情。修改父视图ViewBag不是它的责任。除此之外,这是不可能的。 Quote from MSDN

  

当实例化部分视图时,它会获得自己的副本   父视图可用的ViewDataDictionary对象。该   因此,部分视图可以访问父视图的数据。   但是,如果部分视图更新数据,则会影响这些更新   只有部分视图的ViewData对象。父视图的数据不是   改变。

您可以随时执行变通办法 shown here,但请不要。部分不应该设置任何父状态。他们不应该对父母一无所知。