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