RazorPages制御フロー

Razor Pages でのswitch case文による条件分岐のコードと実行結果

Razor Pagesでswitch case文を利用した条件分岐のコードと実行結果を紹介します。

書式

コードブロック内の場合

switch(判定する変数)
{
  case 値1:
    ...処理;
    break;
  case 値2:
    ...処理;
    break;
  ...
  default:
    ...処理;
    break;
}

「判定する変数」の値をcase文で判定し、条件と一致する場合はcaseに続く処理を実行します。 どの条件にも当てはまらなかった場合は、default:ブロック内の処理を実行します。 caseブロックの中にbreak,returnといったswitch文から抜ける記述が必須です。 break,returnがない場合はコンパイルエラーとなります。

補足
コードブロック外の場合はif文の前に@を記述します。

実装例

コード

以下のcshtmlファイルを作成します。

SimpleSwitch.cshtml
@page
@model RazorPagesControlFlow.Pages.SimpleSwitchModel
@{
  string option = HttpContext.Request.Query["code"].ToString();
}
<h1>Switch文のデモ</h1>

<p>テスト</p>
@{
  switch (option)
  {
    case "cd-001":
      <p>ぺんぎんクッキー</p>
      break;
    case "cd-002":
      <p>らくだキャラメル</p>
      break;
    case "cd-003":
      <p>かるがもサブレ</p>
      break;
    case "cd-004":
      <p>しろくまアイス</p>
      break;
    case "cd-005":
      <p>あるぱかタルト</p>
      break;
    case "":
      <p>コードの指定がありません</p>
      break;
    default:
      <p>その他商品</p>
      break;
  }
}
<p>ページの終わり</p>

SimpleSwitch.cshtml.cs
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace RazorPagesControlFlow.Pages
{
    public class SimpleSwitchModel : PageModel
    {
        public void OnGet()
        {
        }
    }
}

解説

URLパラメーターの code の値によってページの表示を出し分けします。
codeの値が"cd-001"の場合は「ぺんぎんクッキー」、"cd-002"の場合は「らくだキャラメル」を表示、 同様に"cd-003","cd-004","cd-005"の場合にも対応したメッセージを表示します。
指定した値以外の場合は「その他商品」を指定します。また、指定がない場合は「コードの指定がありません」を表示します。

実行結果

プロジェクトを実行します。
(アプリケーションルートURL)/SimpleSwitch のURLにアクセスします。下図のページが表示されます。codeパラメーターが指定されていないため、 「コードの指定がありません」のメッセージがページに表示されます。
Razor Pages でのswitch case文による条件分岐のコードと実行結果:画像1

(アプリケーションルートURL)/SimpleSwitch?code=cd-001 のURLにアクセスします。下図のページが表示されます。 cd-001に対応している「ぺんぎんクッキー」がページに表示されます。
Razor Pages でのswitch case文による条件分岐のコードと実行結果:画像2

(アプリケーションルートURL)/SimpleSwitch?code=cd-003 のURLにアクセスします。cd-003に対応している「かるがもサブレ」がページに表示されます。
Razor Pages でのswitch case文による条件分岐のコードと実行結果:画像3


(アプリケーションルートURL)/SimpleSwitch?code=cd-020 のURLにアクセスした場合は、defaultのフローになるため、 「その他の商品」がページに表示されます。
Razor Pages でのswitch case文による条件分岐のコードと実行結果:画像4


Razor Pagesでswitch文の条件分岐を実装しました。


AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2025-01-19
Copyright © 1995–2025 iPentec all rights reserverd.