「Razor」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
 
(同じ利用者による、間の10版が非表示)
1行目: 1行目:
 
'''Razor'''(れざー)とは、[[ASP.NET MVC 3]]で追加されたビューエンジン(テンプレートエンジン)である。
 
'''Razor'''(れざー)とは、[[ASP.NET MVC 3]]で追加されたビューエンジン(テンプレートエンジン)である。
 +
ASP.NET MVC 3ではビューエンジンをサードパーティー製も含め簡単に選べるようになったが、とくに指定しない場合は標準でRazorが使用される。
 +
テンプレートファイルの拡張子は「.cshtml」または「.vbhtml」となる。
  
[[RazorEngine]]というオープンソースのRazor構文パーサーも存在する<ref>http://razorengine.codeplex.com/</ref>。
+
[[RazorEngine]]というあらゆる文字列をRazor構文で書けるオープンソースのRazor構文パーサーも存在する<ref>http://razorengine.codeplex.com/</ref>。
  
 
== Razor構文 ==
 
== Razor構文 ==
 
Razor構文は基本的に「@」記号で始まる。
 
Razor構文は基本的に「@」記号で始まる。
 +
 +
@に続く1語句は、コメントや予約語を除き、基本的に[[C Sharp|C#]]のソースコード扱いとなる。
 +
 
=== コメント ===
 
=== コメント ===
 
コメントは「@* ~ *@」と書く。
 
コメントは「@* ~ *@」と書く。
[[F Sharp|F#]]のコメント構文「(* ~ *)」に似ている。
+
[[F Sharp|F#]]のコメント構文「(* ~ *)」に似ているが入れ子にはできない。
 +
顔文字みたい。
 +
<source lang="html5">
 +
@* これは正しいコメントです *@
 +
@* これは@*間違った*@コメントです *@
 +
</source>
 +
 
 +
=== コード・ブロック ===
 +
「@ {}」と記述するとソースコードを書くためのコードブロックになる。
 +
<source lang="html5">
 +
@ {
 +
    // ここはC#のソースコードです。
 +
    if (hoge == hage) {
 +
        // hogehage
 +
    }
 +
}
 +
</source>
 +
 
 +
コードブロック中にHTMLタグが出現すると自動的に開始タグでコードブロックが解除され、閉じタグでコードブロックに戻る。
 +
<source lang="html5">
 +
@ {
 +
    // ここはソースコードです
 +
    <p>ここはHTMLです</p>
 +
    // ここはソースコードです
 +
}
 +
</source>
 +
 
 +
HTMLタグは出力したくない場合のために独自のtextタグが用意されている。
 
<source lang="html5">
 
<source lang="html5">
@* これはコメントです *@
+
@ {
 +
    <text>ここはテキストです</text>
 +
}
 
</source>
 
</source>
 +
 +
textタグを打ち込むのが面倒な人のために「@:」という1行用の省略構文も用意されている。
 +
<source lang="html5">
 +
@ {
 +
    @:ここはテキストです
 +
}
 +
</source>
 +
 
=== 基本構文 ===
 
=== 基本構文 ===
 
==== RenderBody構文 ====
 
==== RenderBody構文 ====
30行目: 72行目:
 
* [[ASP.NET MVC]]
 
* [[ASP.NET MVC]]
 
* [[WebMatrix]]
 
* [[WebMatrix]]
 +
 
== 参考文献 ==
 
== 参考文献 ==
 
<references/>
 
<references/>
 +
 
== 外部リンク ==
 
== 外部リンク ==
 +
 
{{stub}}
 
{{stub}}

2012年7月13日 (金) 09:40時点における最新版

Razor(れざー)とは、ASP.NET MVC 3で追加されたビューエンジン(テンプレートエンジン)である。 ASP.NET MVC 3ではビューエンジンをサードパーティー製も含め簡単に選べるようになったが、とくに指定しない場合は標準でRazorが使用される。 テンプレートファイルの拡張子は「.cshtml」または「.vbhtml」となる。

RazorEngineというあらゆる文字列をRazor構文で書けるオープンソースのRazor構文パーサーも存在する[1]

Razor構文[編集 | ソースを編集]

Razor構文は基本的に「@」記号で始まる。

@に続く1語句は、コメントや予約語を除き、基本的にC#のソースコード扱いとなる。

コメント[編集 | ソースを編集]

コメントは「@* ~ *@」と書く。 F#のコメント構文「(* ~ *)」に似ているが入れ子にはできない。 顔文字みたい。

@* これは正しいコメントです *@
@* これは@*間違った*@コメントです *@

コード・ブロック[編集 | ソースを編集]

「@ {}」と記述するとソースコードを書くためのコードブロックになる。

@ {
    // ここはC#のソースコードです。
    if (hoge == hage) {
        // hogehage
    }
}

コードブロック中にHTMLタグが出現すると自動的に開始タグでコードブロックが解除され、閉じタグでコードブロックに戻る。

@ {
    // ここはソースコードです
    <p>ここはHTMLです</p>
    // ここはソースコードです
}

HTMLタグは出力したくない場合のために独自のtextタグが用意されている。

@ {
    <text>ここはテキストです</text>
}

textタグを打ち込むのが面倒な人のために「@:」という1行用の省略構文も用意されている。

@ {
    @:ここはテキストです
}

基本構文[編集 | ソースを編集]

RenderBody構文[編集 | ソースを編集]

RenderPage構文[編集 | ソースを編集]

RenderSection構文[編集 | ソースを編集]

変数[編集 | ソースを編集]

テンプレート変数は「@変数名」という形式で先頭に@記号をつけることでHTMLに埋め込むことができる。変数は標準でHTMLエスケープされた状態となっているので、従来のようにいちいちHtml.Encodeメソッドでエスケープしなくてもよくなっており、セキュリティ的にも間違いが起こりにくい作りとなっている。

<p>こんにちは @Name</p>

変数をHTMLエスケープしたくない場合はHtml.Rawメソッドを用いる。

<p>こんにちは @Html.Raw(Name)</p>

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]

外部リンク[編集 | ソースを編集]