Blazorは.NETのウェブUIフレームワークです。SPAのように高速な画面遷移ができます。
Blazorを使うことでウェブサーバを使用したウェブアプリも、ウェブサーバが不要なSPAも開発することができます。
この記事では、どちらのBlazorでも使えるURLパラメタを取得・判定する方法を紹介します。
固定のURLを定義する方法
各ページのURLを定義するには、Pageディレクティブに記述します。
以下のように記述すると、「https://usefuledge.com/
」のように、トップのインデックスページの指定になります。
@page "/"
以下のように記述すると、「https://usefuledge.com/details/
」のように、「details」ページの指定になります。
@page "/details/"
可変のURLを定義する方法
それでは、「https://usefuledge.com/details/A
」や「https://usefuledge.com/details/B
」のように、URLの一部を可変にするには、どうすればいいでしょうか。
まずは、Pageディレクティブを以下のように定義します。
@page "/details/{CodeID?}"
次に、codeディレクティブ内に以下のように変数を定義します。
[Parameter]
public string codeID {get; set;}
このようにすることで、URLに指定された文字列をcodeID
という文字列に格納して処理することができます。
codeID
の中身を確認したい場合は、デバッグしたり、HTML部分に@codeID
などと入力したり、OnAfterRenderAsync
などで標準出力するなどいろいろな方法があります。
URLから変数(パラメタ)を取得する
https://pacode.net/?languageID=8
のように、URLパラメタを取得したい場合を考えてみます。
まずはPageディレクティブで以下のようにページURLを定義します。今回はルートページに対して設定していきますので、以下のようになります。
@page "/"
次に、codeディレクティブで以下のようにパラメタを定義します。
String?
とすることで、Nullを許容した文字列型になります。
Nullを許容することで、URLにlanguageID
パラメタが指定されていなくてもエラーにならず処理が可能になります。
[Parameter]
[SupplyParameterFromQuery]
public String? languageID {get; set;}
languageID
の値は変数に格納されますので、デバッグしたり、HTML部分に@languageID
などと入力したり、OnAfterRenderAsync
などで標準出力するなどいろいろな方法があります。
System.Console.WriteLine(languageID);
おすすめ本 c#コードレシピ集
c#コードレシピ集は、「文字列を大文字あるいは小文字に変換したい」や「Taskをキャンセルしたい」など逆引き的にコードの書き方を調べられるレシピ集です。
2021年8月に発売された本で、全部で385個のレシピが収録されています。
ジャンルは日付処理やLINQ、並列処理と非同期処理など幅広く記載されています。
Kindle対応ですので、まずはサンプルをダウンロードして何が書かれているか確認してはいかがでしょうか。
コメント