如何从使用RenderPage()呈现的页面访问包含页面?

时间:2019-06-17 15:01:05

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

我有.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或其他视图成员?

0 个答案:

没有答案