我当前的设置是
在Blazor页面中,我有如下内容:
@page "/page"
@page "/page/{Id}"
使用:
[Parameter]
public string Id { get; set; }
现在,例如从/page/1
导航到/page/2
时,我可以使用OnParametersSetAsync
来检测这些更改。但是从/page/1
导航到/page
时会发生问题。 OnParametersSetAsync
可以检测到此更改,但是Id
参数将保持为1
,与之前的路由相同。
我想知道在这种情况下我该怎么办。
答案 0 :(得分:4)
Blazor不会使用null覆盖空参数,请自己执行:
@page "/Counter"
@page "/Counter/{Id}"
<h1>Current Id: @IdString;</h1>
<a href="/Counter"> go home </a> |
<a href="/Counter/1"> go home 1 </a> |
<a href="/Counter/2"> go home 2 </a>
@code
{
private string IdString;
[Parameter] public string Id { get; set; }
protected override async Task OnParametersSetAsync()
{
// copy par value somewhere
IdString = Id?.ToString() ?? "";
// rest parm (set to null) by yourself
Id=null;
}
}