简单用法
安装
在你的 Blazor 项目中安装 BlazorPathHelper。
安装 BlazorPathHelper |
---|
| dotnet add package BlazorPathHelper
|
URL 构建器
假设你有如下的 razor
文件:
Sample.razor |
---|
| @page "/sample"
@page "/sample/{id:int}"
@page "/sample/{value}"
|
引入 BlazorPathHelper
后,将会自动生成如下代码:
自动生成的代码 |
---|
| // <auto-generated />
public partial class Sample
{
public static string UrlBuild()
=> "/sample";
public static string UrlBuild(int id)
=> string.Format("/sample/{0}", ToStringForUrl(id));
public static string UrlBuild(string value)
=> string.Format("/sample/{0}", ToStringForUrl(value));
}
|
你可以这样使用:
Usage.cs |
---|
| var url1 = Sample.UrlBuild(); // -> "/sample"
var url2 = Sample.UrlBuild(1); // -> "/sample/1"
var url3 = Sample.UrlBuild("test"); // -> "/sample/test"
|
Navigation.razor |
---|
| @inject NavigationManager NavigationManager
@code {
void OnClick()
{
var navigationUrl = Sample.UrlBuild(1);
NavigationManager.NavigateTo(navigationUrl);
}
}
|
限制
在以下情况下,简单生成方式无法正确工作。
如遇下述情况,请参考 高级用法。
使用查询参数时
SampleWithQuery.razor |
---|
| @page "/query"
@code {
[SupplyParameterFromQuery]
public int Value { get; set; }
}
|
存在多个参数类型相同的 URL 定义时
Conflict2.razor |
---|
| @page "/c/{foo:int}"
@page "/d/{bar:int}"
|
URL 定义使用常量时
ConstantUrl.cs |
---|
| @* public const string ConstUrl = "/constant"; *@
@attribute [Route(ConstUrl)]
|