Razor ビュー エンジンで MVC 3 を使用しています。部分ビュー内の ViewBag にいくつかの値を設定し、それらの値を _Layout.cshtml で取得したいと考えています。たとえば、既定の ASP.NET MVC 3 プロジェクトをセットアップすると、"/Views/Shared" フォルダーに _Layout.cshtml ファイルが作成されます。その _Layout.cshtml では、ページ タイトルは次のように設定されます。
<title>@ViewBag.PageTitle</title>
次に、"/Views/Home/About.cshtml" ビューで、ViewBag の内容が変更されます。
@{
ViewBag.Title = "About Us";
}
これはうまくいきます。Aboutビューがレンダリングされると、ページのタイトルは「About Us」になります。そこで、About ビュー内で Partial ビューをレンダリングし、Partial ビュー内で ViewBag.Title を変更したいと考えています。("/Views/Shared/SomePartial.cshtml")
@Html.Partial("SomePartial")
この部分ビューには、次のコードがあります。
@{
ViewBag.Title = "About Us From The Partial View";
}
このコードをデバッグすると、ViewBag.Title が「About Us」に設定され、部分ビューでは「About Us From The Partial View」にリセットされますが、コードが _Layout.cshtml にヒットすると、 「私たちについて」に戻ります。
これは、ViewBag のコンテンツが部分ビューで変更された場合、それらの変更はメイン ビュー (About.cshtml) または _Layout.cshtml に表示されない (アクセスできない) ということですか?
前もって感謝します!