本稿は、Scott Guthrie氏のブログを、氏の許可を得て、翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。原典:ASP.NET MVC 3:Razor's @: and syntax。
本稿は、Scott Guthrie氏のブログを、氏の許可を得て、翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。
ASP.NET MVC 3: Razorの@:と<text>文法
この投稿は、ASP.NET MVC 3ベータ版/RCの新機能を、いくつか詳細に紹介していく『ミニ投稿』シリーズの1つです。
- Razorの@model新キーワード(10月19日)
- Razorでのレイアウト(10月22日)
- Razorでサーバーサイドのコメント(11月12日)
- Razorの@:と<text>文法(本日)
本日のブログ投稿では、Razorビューエンジンの2つの便利な文法的新機能である、@:と<text>について話します。
Razorで流れのあるコーディング
ASP.NET MVC 3は、(既存の.aspxビューエンジンに加え)『Razor』と呼ばれる新ビューエンジンとともに出荷されます。Razorが導入された理由や、サポートされている文法などの詳細は、以前のRazor導入のブログ投稿で確認できます。
Razorでは、ビューテンプレートを書く時に文字数や入力数を最低限に抑えられ、高速で流れるようなコーディングのワークフローが可能です。通常のテンプレートの文法とは違い、HTML内にサーバーブロックの開始と終了を明示的に表示する必要がありません。Razorのパーサーは、サーバーブロックの開始と終了をコードから推測します。これにより、クリーンかつ高速で入力が楽しくなるような、コンパクトで表現力のある文法が可能になります。
例えば、以下のRazorスニペットは、製品一覧の反復で使用できます。

実行すると、以下のような出力を生成します。

コードブロックの終了を暗黙的に確認する時に、Razorが使用するテクニックの1つが、コンテンツの領域の開始を表示するタグ/要素の検索です。例えば、上記のコードスニペットだと、Razorは自動的に、foreachループ内の<li></li>ブロックを、HTMLコンテンツブロックとして扱います。それは、<li>開始タグを発見していて、それがC#で有効なものではないことがわかっているからです。
コード内のコンテンツブロックを特定するためにタグを使用するこのテクニックは、HTML作成が関わるようなシナリオで、Razorを非常にクリーンで生産性の高いものにしている主要素の1つになっています。
この記事は参考になりましたか?
- この記事の著者
-
WINGSプロジェクト Chica(チカ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
この記事は参考になりましたか?
この記事をシェア
