このところ、ASP.NET MVC の勉強をしているのだが、その備忘録。
ASP.NET MVCのプロジェクトで複数の_Layout.cshtmlを使う方法だ。
まあ、興味ある人はあまりいないと思うが。
では、本題に入ろう。
ASP.NET MVCプロジェクトと_Layout.cshtmlの関係
ASP.NET MVCのデフォルトのプロジェクトを生成すると以下の三つのページが自動で生成される。
- Home/Index.cshtml
- Home/About.cshtml
- Home/Contact.cshtml
これらのページは Bootstrap のレスポンシブなスタイルになるので、パソコンとモバイルの両方に対応出来る。
さて、ASP.NETの場合、以下のファイルがこれらの三つのページで読み込まれる共通のレイアウト設定ファイルだ。
"~/Views/Shared/_Layout.cshtml";
この中で、例えば上部のNavibar部分に表示されるメニュー項目を自由に設定できる。
で、今日、こんな場面に遭遇した。
- Home/Index.cshtml
と、他の二つのページ
- Home/About.cshtml
- Home/Contact.cshtml
とで、異なるレイアウト設定ファイルを使いたい、そう言う場面だ。
最初は、_Layout.cshtml の中で現在のURLを調べて、IndexとAbout, Contactに応じてif文で対処する方式を思い付いた。
まあ、それでも出来るとは思うのだが、何だかややこしい。
見た目がごちゃごちゃするし。
良い方法が無いのかなあと思って調べてたら有った。
簡単だった。
そのやり方。
ASP.NET MVC で特定のレイアウト設定ファイルを使う方法
@{ Layout = "~/Views/Shared/_Layout2.cshtml"; // この部分を追加すると良い。 ViewBag.Title = "About"; }
要するに、新しいレイアウト設定ファイル _Layout2.cshtml を作成して、
About.cshtml などの冒頭に上のコードを入れれば良いのだ。
ああ、簡単。
まとめ
ワレコ
ASP.NET MVCはとってもプログラミングがし易いと思う。
サーバーサイド言語にはPHPが一般的だが、ワテの場合にはPHPには馴染めない。
まあ単に慣れの問題かもしれないが、ワテの場合にはPHPよりもC#で書くほうが数倍効率よくWEBプログラミングが出来るような気がする。
ASP.NET MVCをやるんなら、この辺りの本が人気あるようだ。
著者の山田 祥寛さんは、プログラミング解説本では超有名人だ。
それに物凄く多作だし。プログラミング解説本業界の赤川次郎かと思うくらいに多作だ。
なお、ワテのブログの読者の方で、
- ASP.NET MVC
- Visual Studio
- C#
- その他、プログラミングに関する話題
などに関して、何か質問、相談など有りましたら、コメント欄からご連絡下さい。
先着1000,000,000名様までに限り、ワテが無料でアドバイスします。
なお、難しい質問には答えられません。
悪しからずご了承下さい。
また、希望者多数の場合には、この無料相談コーナーは、途中で中止になる場合も有ります。
今のところ、誰一人として相談が来ていません。
あかんがな。
コメント