ASP.NET MVC 3 RAZOR のレイアウトファイルの読み込み
2012/03/27
大元になるレイアウト(テンプレートファイル・マスターページ)はデフォルトで「/Views/Shared/_Layout.cshtml」を読み込む。
※「/Views/_ViewStart.cshtml」で設定されている。
※別のファイルを使う方法は後述
※「/Views/_ViewStart.cshtml」で設定されている。
※別のファイルを使う方法は後述
レイアウト内のユニークコンテンツ
レイアウトのファイル(/Views/Shared/_Layout.cshtml等)内にある「@RenderBody()」が元のファイル(/Views/Home/Index.cshtml等)に置き換えられる。
「@RenderBody()」はレイアウトのファイル一つにつき1回だけ使えるらしい。
「@RenderBody()」はレイアウトのファイル一つにつき1回だけ使えるらしい。
レイアウト内の共通コンテンツ(ヘッダ・フッタ等)
レイアウトのファイル(/Views/Shared/_Layout.cshtml等)内で「@RenderPage()」を使う
さんぷる
「/Views/Shared/_Header.cshtml」を読み込む場合。
@RenderPage("~/Views/Shared/_Header.cshtml")
別のレイアウトを使う
レイアウトの呼び出し元で「Layout」ってのを使う。
さんぷる
「/Views/Home/Index.cshtml」のレイアウトをデフォルトの「/Views/Shared/_Layout.cshtml」ではなくて「/Views/Shared/_recatnap.cshtml」に変更したい。
「/Views/Home/Index.cshtml」に下記を追加。
- @{
- Layout = "~/Views/Shared/_recatnap.cshtml";
- }
※ルートからってことでルート演算子(~)を使う。