Самый простой способ - использовать параметры маршрута вместо QueryString:
@page "/navigatetopage/{id:int}/{key}"
@code {
[Parameter] public int Id{get;set;}
[Parameter] public string Key{get;set;}
...
}
И URL выглядит так:
<a href="../navigatetopage/1/img"></a>
Или, если вы хотите запросить строку, установите строкусвойство / поле в пределах OnParametersSet()
:
@page "/navigatetopage/"
@code {
public int Id{get;set;}
public string Key{get;set;}
protected override void OnParametersSet(){
var qs= navManager.ToAbsoluteUri(navManager.Uri).Query;
var query = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(qs);
if (query.TryGetValue("id", out var id_str)) {
if (Int32.TryParse(id_str, out var id)){
this.Id = id;
}
}
if (query.TryGetValue("Key", out var key)) {
this.Key = key;
}
}
}