@
を記述します。Razor Pagesでswitch case文を利用した条件分岐のコードと実行結果を紹介します。
コードブロック内の場合
switch(判定する変数)
{
case 値1:
...処理;
break;
case 値2:
...処理;
break;
...
default:
...処理;
break;
}
「判定する変数」の値をcase文で判定し、条件と一致する場合はcaseに続く処理を実行します。
どの条件にも当てはまらなかった場合は、default:ブロック内の処理を実行します。
caseブロックの中にbreak,returnといったswitch文から抜ける記述が必須です。
break,returnがない場合はコンパイルエラーとなります。
@
を記述します。以下の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>
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パラメーターが指定されていないため、
「コードの指定がありません」のメッセージがページに表示されます。
(アプリケーションルートURL)/SimpleSwitch?code=cd-001
のURLにアクセスします。下図のページが表示されます。
cd-001に対応している「ぺんぎんクッキー」がページに表示されます。
(アプリケーションルートURL)/SimpleSwitch?code=cd-003
のURLにアクセスします。cd-003に対応している「かるがもサブレ」がページに表示されます。
(アプリケーションルートURL)/SimpleSwitch?code=cd-020
のURLにアクセスした場合は、defaultのフローになるため、
「その他の商品」がページに表示されます。
Razor Pagesでswitch文の条件分岐を実装しました。