Asp.net mvc 3 从PartialView设置页面标题
可能重复:Asp.net mvc 3 从PartialView设置页面标题,asp.net-mvc-3,razor,viewbag,Asp.net Mvc 3,Razor,Viewbag,可能重复: 我正试图从PartialView设置页面标题 这是我的密码: 部分视图模板: @{ ((WebViewPage)WebPageContext.Current.Page).ViewBag.Title = "Page title"; } <title> @ViewBag.Title</title> \u Layout.cshtml: @{ ((WebViewPage)WebPageContext.Current.Page).ViewBag.T
我正试图从PartialView设置页面标题 这是我的密码: 部分视图模板:
@{
((WebViewPage)WebPageContext.Current.Page).ViewBag.Title = "Page title";
}
<title> @ViewBag.Title</title>
\u Layout.cshtml:
@{
((WebViewPage)WebPageContext.Current.Page).ViewBag.Title = "Page title";
}
<title> @ViewBag.Title</title>
@ViewBag.Title
如何做到这一点?这不是分部应该做的事情。它只是不负责修改父视图
ViewBag
。除此之外,这是不可能的
当局部视图被实例化时,它会得到它自己的
ViewDataDictionary对象,该对象可用于父视图。这个
因此,局部视图可以访问父视图的数据。
但是,如果局部视图更新了数据,这些更新将影响
仅局部视图的ViewData对象。父视图的数据不可用
变了
你可以做一些变通办法,但请不要这样做。Partials不应设置任何父状态。他们不应该知道关于父母的任何事情。这不是一个分部应该做的事情。它只是不负责修改父视图
ViewBag
。除此之外,这是不可能的
当局部视图被实例化时,它会得到它自己的
ViewDataDictionary对象,该对象可用于父视图。这个
因此,局部视图可以访问父视图的数据。
但是,如果局部视图更新了数据,这些更新将影响
仅局部视图的ViewData对象。父视图的数据不可用
变了
你可以做一些变通办法,但请不要这样做。Partials不应设置任何父状态。他们不应该知道有关家长的任何信息。我已经访问过了,但我正在寻找一个更“方便”的解决方案!!我已经访问过它,但我正在寻找一个更“方便”的解决方案!!达林,我知道这很古老,你显然是个专家。然而,“ViewBag”的目的不是成为“通用视图数据”的通用访问点吗?我理解“关注点分离”这一点,但我想不出在什么情况下,局部视图中的动态ViewBag需要不知道父视图中的动态ViewBag。如果它是强类型的,是的。我有一个向导,每个步骤都是部分的。我想根据我正在进行的步骤更改ViewBag标题,而无需重新加载整个页面,当我正在进行的步骤+部分更改时,我知道这已经过时了,而且你显然是个专家。然而,“ViewBag”的目的不是成为“通用视图数据”的通用访问点吗?我理解“关注点分离”这一点,但我想不出在什么情况下,局部视图中的动态ViewBag需要不知道父视图中的动态ViewBag。如果它是强类型的,是的。我有一个向导,每个步骤都是部分的。我想根据我正在执行的步骤更改ViewBag标题,而不必重新加载整个页面,当我正在执行的步骤+部分更改时