Razor構文のいろは
View周りで忘れられないのはビューエンジンRazorです。すでに多くの情報が提供されているので、本稿ではRazorで最低限覚えておくべき構文と、Razor使用時の必須設定。そして、学習するためのおススメコンテンツについてご紹介します。
必修Razor構文
Razorは前回記載したようにASPXに代わるビューエンジンで、構文は一番最初に"@"を記載するだけです。@以降はヘルパーメソッドやC#/VBの言語構文を解析して実行してくれます。
"@"以外に最低限抑えておくべき記法がいくつかありますので、以下の表に記載します。
シンタックスの解説 | Razor | ASPX |
コードブロック | @{ string hr = "Razor";} | <% string hr = "ASPX"; %> |
一部をプレーンテキスト出力したい |
@if (book.price > 2000) |
<% if(book.price > 2000) { %> <% }else{ %> |
HTML文字列をそのままレンダリングしたい | @Html.Raw(model.Title) | <%= model.Title %> |
HTML文字列をエンコードしたい | @model.Title | <%: model.Title %> |
コメント | @* Razorによるコメント *@ | <%-- ASPXによるコメント --%> |
ほとんどの場合Razorの方がシンプルに書けることがご確認いただけたかと思います。学習やスタートアッププロジェクトの場合にはRazorを選択肢に加えてみてはいかがでしょうか。
Razorのみ使用する場合の必須設定
シンプルに短く記述できるRazorは魅力的ですが、ASP.NET Web Formのサーバーコントロールを使用できません。また、ASPXの場合、Web Formのサーバーコントロールは使用できますが、一行辺りに入力する文字がRazorよりも増えてしまいます。プロジェクトや開発されるメンバーの環境などにより選択されると思いますが、もし、Razor構文一択でASPXを使用しない場合、ASPXのViewEngineは不要になります。ASP.NET MVCでは、既定でASPXとRazorどちらもチェックしますので、Razor一択の場合はASPXのViewEngineは削除することで、わずかではありますが、パフォーマンスアップが見込めます。
肝心のViewEngineの設定ですが、アプリケーション時に実行されるGlobal.asaxのApplication_Startメソッド内に以下のように記載をします。
// ViewEngineからASPXとRazorをクリア ViewEngines.Engines.Clear(); // ViewEngineにRazorのみ追加 ViewEngines.Engines.Add(new RazorViewEngine());
Clearメソッドで現在登録されているViewEngineを削除し、AddメソッドでRazorのViewEngineを再登録します。これでRazorのみの登録が実現できます。Razorのみ利用するときは必ず上記コードを入れるようにしましょう。
Razor学習おススメコンテンツ
Razorが正式リリース(MVC 3のRTW時)してから半年近く経ち、多くのドキュメントが提供されてきました。喜ばしい反面入門の方にとっては、どのドキュメントを読むべきか悩むこともあるかもしれません。
本項では、現在著者が参考にしているRazorに関するコンテンツを3つ紹介します。
『Scott Guthrie氏 Blog翻訳』
Chicaさんが実施しているScott Guthrie氏のBlog翻訳ですが、Razor構文に関する投稿はすべて和訳されています。Razor登場の背景から、実際に活用するためのノウハウが掲載されています。"ASP.NET MVC 3: Razorの(で)XXX"というタイトルで表示されていますので、Razorを現場活用する際には一読してみると良いでしょう。
『Razor構文とASP.NET Webページ』
無償のWebサイト開発環境WebMatrix上ではRazorを利用できますが、実際にWebサイトを作成しながらRazor構文を学習できるドキュメントがマイクロソフトから提供されています。WebMatrixをインストールし、本ドキュメントをダウンロードしていればお手軽に学習できるのがポイントです。
『まめしば雑記 ASP.NET MVC 3 開発入門 (12) - Razor の文法』
しばやんさんが、Razorに関する構文を実例と解説を交えて紹介しています。すぐに利用したい!という場合は、コチラを参考に学習してRazorを利用しましょう。
上記3つはどれか1つでも閲覧することでRazorを簡単に習得できますが、より深く知りたい方はすべてのコンテンツをチェックし、実際にアプリケーションを作成してみると良いでしょう。