Razor構文(Razor syntax)とは、ASP.NET MVCや(WebMatrixで採用されている)ASP.NET WebページなどのWeb開発技術用のビュー・エンジンの1つである「Razorビュー・エンジン」向けの文法のことで、C#言語(.cshtmlファイル)用とVisual Basic言語(.vbhtmlファイル)用の2種類がある。
その構文は、クラシックASP(Active Server Pages)に近く、「HTMLページ内にRazor構文でコードを埋め込む」という開発スタイルである。ASP.NET Webフォームのコード・ナゲット(=「<% ... %>」という構文でプログラミング・コードを埋め込む方法)と比べて、タイプ量が少なく、シンプルな記述となるのが特徴だ。
[Title]欄に今回の入力内容を表すタイトルを入力して
[Razor]欄にRazorコード(この例では「@DateTime.Now」)を含むHTMLコードを入力し、
コンボボックスから「cshtml」(=C#)を選択して、
[Execute]ボタンをクリックする
■
2. Razor構文(C#)の基礎文法
●
インライン式:単一のプロパティ/メソッド/フィールド変数の値の出力
Razor構文で、メソッドやプロパティ、フィールド変数などの値を、HTMLコードとして動的に出力したい場合には、それらの先頭に「@」を付けるだけである。
このようなインライン式の終了位置は、C#における識別子名として使えない文字の出現によって決まる(半角/全角スペースや「:」などの、「英数字・日本語文字」以外の文字のほとんどが区切りとなる。「.<英数字>」や「[」などはインライン式の一部と見なされる)。つまり下記のコード例では、「<」で始まるHTMLタグの前までがC#コードとなる。
@{int[] items = {1,2,3};}
@foreach
(var item in items) {
<p>foreach文のループで処理される個別項目の値は「@item」です。</p>
@* whileコード・ブロック *@
@{var j = 0;}
@while
(j < 3) {
<p>for文のループの「@j」回目です。</p>
●
そのほかの重要なRazor構文の機能:レイアウト/ヘルパー
Razor構文を使ううえで押さえておきたい機能がいくつかあるので、最後に簡単に紹介する。
1つは、共通のサイト・テンプレートを定義できる「レイアウト・ページ」である。詳しくは、「
“Razor”の紹介 − ASP.NET向け新ビュー・エンジン − @IT
」の「レイアウト/マスターページのシナリオ − 基礎」の節を参照されたい。
もう1つは、Webアプリケーションにさまざまな機能を付加してくれる「ヘルパー」である。詳しくは「
Razorビュー・エンジンとヘルパー、そしてWebMatrixの登場 − @IT
」の「NuGetとヘルパー・ライブラリの活用」の節や、「
第5回 新しいビュー・エンジン「Razor」の基本を理解しよう − @IT
」の「ビュー開発を効率化する『ビュー・ヘルパー』」の節を参照してほしい。また、ヘルパーを自作する場合には「@helper」で始まるコードを記述するが、詳しくは「
.NET開発の新標準「NuGet」入門(後編) − @IT
」の「NuGetパッケージの作成」の節を参照してほしい。
「.NET開発『虎の巻』」
Insider.NET フォーラム 新着記事
第2回 簡潔なコーディングのために
(2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
第1回 Visual Studio Codeデバッグの基礎知識
(2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
第1回 明瞭なコーディングのために
(2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
Presentation Translator
(2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える