_Layout.cshtml
ビュー ページのスコープ内の共有レイアウトで定義した変数はありますか?
_Layout.cshtml 変数:
@{
ViewBag.url = "http://www.website.com/site/";
}
インデックス.cshtml:
<a class="continue" href="@ViewBag.url/our-vision/">Continue</a>
これは以下を出力します:/our-vision/
_Layout.cshtml
ビュー ページのスコープ内の共有レイアウトで定義した変数はありますか?
_Layout.cshtml 変数:
@{
ViewBag.url = "http://www.website.com/site/";
}
インデックス.cshtml:
<a class="continue" href="@ViewBag.url/our-vision/">Continue</a>
これは以下を出力します:/our-vision/
この質問からの回答を試すことができます: How do I set ViewBag properties on _ViewStart.cshtml?
設定 (注: コードは _ViewStart 用であり、_Layout 用ではありません)
@{
PageData["message"] = "Hello";
}
得る
<h2>@PageData["message"]</h2>
また
より興味深い解決策を作成する:コントローラーの基本クラスを使用せずに、すべてのビューの ViewBag プロパティを設定する方法は?
説明:
ViewBag はビュー/レイアウトごとに異なり、かみそりは最初にビューをレンダリングし、その後レイアウトをレンダリングします。
この問題の解決策は、レイアウトではなく、ベース コントローラーまたはビューまたはグローバル フィルターで共通の定数を設定することです。