2017.11.10
2020.1.7

Razorで繰り返しや条件分岐、CSSクラス名の設定など

ASP.NETのRazorで繰り返し処理(for/foreach)や条件分岐(if/else)、CSSクラス名の設定、「@」のエスケープ処理などを行う方法です。

目次

  • 繰り返し処理(for/foreach)
  • 条件分岐(if/else)
  • CSSクラス名の設定
  • @で始まる文字列のエスケープ

繰り返し処理(for/foreach)

for


@for (var i = 0; i < 3; i++)
{
    <p>@i</p>
}

foreach


@{ 
    string[] arr = { "a", "b", "c" };
}

@foreach (var s in arr)
    {
    <p>@s</p>
}

条件分岐(if/else)

if/else


@{
    var flag = (new System.Random().Next(2) < 1);
}

@if (flag)
{
    <p>true</p>
}
else
{
    <p>false</p>
}

CSSクラス名の設定


@{
    var activeClass = "active";
}

<p class="@activeClass"></div>

@で始まる文字列のエスケープ

Razorは先頭が「@」で始まるので、HTML中にRazor処理しないただの「@」を埋め込む場合は「@@」とします。

以下はCSSのメディアクエリ(@media)を使用した際のエスケープ。

通常通りに「@」1つだとエラーになるので


<style>
@media screen and (min-width: 500px) {
    .foo {
        display: inline-block;
    }
}
</style>

<p class="foo"></p>

「@@」とします。


<style>
@@media screen and (min-width: 500px) {
    .foo {
        display: inline-block;
    }
}
</style>

<p class="foo"></p>

ASP.NET Core】関連記事