我正在使用@RenderPage
在两个相似页面中重用代码。这两个页面中的每一页都只包含@RenderPage
:
@RenderPage("~/Views/PathToImplementation.cshtml", new { paramsListHere })
重复使用的代码(在PathToImplementation.cshtml
内)使用ViewBag.Title
来设置网页标题:
ViewBag.Title = somethingUseful;
问题是从重用代码中改变ViewBag.Title
对原始页面没有影响 - 没有任何反应。
如何从@RenderPage
调用的代码更改页面标题?
答案 0 :(得分:2)
在使用RenderPage
时看起来ViewBag
是重复的,并且副本会传递到RenderPage
呈现的页面中,并且无法返回。所以我到目前为止找到的最干净的方法是将引用传递给调用RenderPage
的页面。像这样:
//calling page
@RenderPage( PathToPage.cshtml, new { ParentPage = this } )
//PathToPage.cshtml
@{ WebViewPage parentPage = PageData["ParentPage"];
parentPage.ViewBag.Title = blahblahblhah;
}
答案 1 :(得分:0)