Index
最小限の使用方法
最小限必要なものは以下の内容です。
[BlazorPath]
属性を付与したクラスを用意します。この際、クラス定義にはpartial
属性が必要です。
- そのクラス内のメンバーとして
const string
型の定数を定義します。
BlazorPathHelperは上記の内容を満たすクラス定義を自動で捜査して、URLビルダー関数を生成します。
WebPaths.cs |
---|
| [BlazorPath]
public partial class WebPaths
{
public const string CounterWithState = "/counter/{count:int}";
}
|
生成されたコード
Auto Generated Code |
---|
| // <auto-generated />
public partial class WebPaths
{
public partial class Helper
{
public static string CounterWithState(int Count)
=> string.Format("/counter/{0}", ToStringForUrl(Count));
}
}
|
URL定義の凡例
公式ドキュメントに記載されているURL定義は全て対応しています。
このプログラムのテストケースも参照してください。
通常の例
定義例 |
生成される関数 |
出力されるURLの例 |
"/{text}" |
string Text(string text) |
"/sample-text" |
"/{active:bool}" |
string Active(bool active) |
"/true" |
"/{dob:datetime}" |
string Dob(DateTime dob) |
"/2025-01-01T00:00:00Z" ※1 |
"/{price:decimal}" |
string Price(decimal price) |
"/123.45" |
"/{weight:double}" |
string Weight(double weight) |
"/123.45" |
"/{weight:float}" |
string Weight(float weight) |
"/123.45" |
"/{id:guid}" |
string Id(Guid id) |
"/00001111-aaaa-2222-bbbb-3333cccc4444" |
"/{id:int}" |
string Id(int id) |
"/123456789" |
"/{ticks:long}" |
string Ticks(long ticks) |
"/123456789" |
"/{parameter:nonfile}" |
string Parameter(string parameter) |
"/foo" |
"/{*pageRoute}" |
string PageRoute(string pageRoute) |
"/foo/bar/buz" |
※1: ISO 8601形式かつUTC形式に変換されて出力されます。
オプションパラメータの例
定義例 |
生成される関数 |
出力されるURLの例 |
"/{text?}" |
string Text(string? text = null) |
"/sample-text-2", "/" |
"/{active:bool?}" |
string Active(bool? active = null) |
"/true", "/" |
複数を組み合わせた例
定義例 |
生成される関数 |
出力されるURLの例 |
"/{text}/{val:int}" |
string TextValue(string text, int val) |
"/sample/123" |
"/{id:int}/{flag:bool?}" |
string IdFlag(int id, bool? flag = null) |
"/123/true", "/456/" |
様々な定義方法
WebPaths.cs |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 | using BlazorPathHelper;
[BlazorPath]
public partial class WebPaths
{
// string
public const string WithString = "/string/{val}";
// nullable string
public const string WithStringNullable = "/string-null/{val?}";
// bool
public const string WithBool = "/bool/{val:bool}";
// datetime
public const string WithDate = "/datetime/{val:datetime}";
// decimal
public const string WithDecimal = "/decimal/{val:decimal}";
// double
public const string WithDouble = "/double/{val:double}";
// float
public const string WithFloat = "/float/{val:float}";
// guid
public const string WithGuid = "/guid/{val:guid}";
// int
public const string WithInt = "/int/{val:int}";
// long
public const string WithLong = "/long/{val:long}";
// multiple pattern
public const string WithMultiple = "/multi/{val1:int}/{val2:int}";
// super multiple pattern
public const string WithSuperMultiple = "/something/{val1:string}/{val2:int}/{val3:double?}";
// catch all pattern
public const string WithCatchAll = "/catch-all/{*rest}";
}
|