我有.cshtml,它完全由@RenderPage()
调用组成。这样做是为了使另一段.cshtml可以在不同的场景中重复使用。
// ActualView.cshtml
@RenderPage("~/Views/ReusableControls/PasswordResetPage.cshtml",
new { some parameters here })
PasswordResetPage.cshtml中的代码需要能够设置页面标题。以下内容不起作用(代码运行但没有明显效果):
// PasswordResetPage.cshtml
ViewBag.Title = "new title";
因为它是“另一页”或其他内容。我必须访问包含页面的ViewBag
。如此有效:
// ActualView.cshtml
@RenderPage("~/Views/ReusableControls/PasswordResetPage.cshtml",
new { some parameters here, InvokedFrom = this })
//PasswordResetPage.cshtml
PageData["InvokedFrom"].ViewBag = "new title";
它可以工作,但是看起来有点工程化。
是否有更好的方法可以从PasswordResetPage.cshtml的内部视图访问ActualView.cshtml中的ViewBag
或其他视图成员?