У меня есть .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";
Работает, но выглядит немного перегруженным.
Есть ли лучший способ получить доступ к ViewBag
или другим членам представления в ActualView.cshtml из внутреннего представления в PasswordResetPage.cshtml?