TOC

This article has been localized into Japanese by the community.

Razor:

IF文

ビューにおいてマークアップを定義するとき、ビューの一部を解釈し表示の対象とするかどうかを条件文で決めることは非常に有用です。最も一般的な条件文は if 文ですが、普段C#で使うようにRazorでも条件文を使うことができます。Razor演算子の@をキーワードの前に付けるだけです。

if 文

以下はRazorでのシンプルな if 文です。一般のHTMLとともにビューの中に直接含めることができます。

@if(DateTime.Now.Year == 2042)
{
    <span>The year 2042 has finally arrived!</span>
}

見たとおり、ただHTMLの混ざったC#です。しかし2つの点に注意が必要です。まず、コードやマークアップが一行しかないため通常のC#であれば中括弧は省略できるはずですが、Razorでは認められていません。制御構造に付随する行が何行であっても中括弧でくくる必要があります。次に、C#からマークアップに直接切り替わっていることに注目してください。これはパーサーがHTMLタグとC#コードの違いを容易に理解できるためです。一方、HTMLタグを使わずただテキストを書いた場合は、パーサーが混乱してしまいます。そのような場合は前回の記事で説明したように、<text>を使うことができます。

if-else文

「if」あるところに「else」あり。C#と同様、Razorでは if-else文を以下のように書くことができます。

@if(DateTime.Now.Year >= 2042)
{
    <span>The year 2042 has finally arrived!</span>
}
else
{
    <span>We're still waiting for the year of 2042...</span>
}

まとめ

Razorで if 文を使うのはC#と同様とても簡単です。ループのようなその他のC#言語の構造が使えることと相まって、RazorはASP.NET MVCページのための非常に強力なテンプレートエンジンになっています。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!