Asp.net core .Net Core Blazor如何传递多个参数?

Asp.net core .Net Core Blazor如何传递多个参数?,asp.net-core,blazor,Asp.net Core,Blazor,单击a选项卡以传递多个参数。如何接收 <a href="../navigatetopage?id="1"&key="img"></a> 最简单的方法是使用路由参数而不是查询字符串: @page "/navigatetopage/{id:int}/{key}" @code { [Parameter] public int Id{get;set;} [Parameter] public string Key{get;set;} ... }

单击a选项卡以传递多个参数。如何接收

<a href="../navigatetopage?id="1"&key="img"></a>

最简单的方法是使用路由参数而不是查询字符串:

@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>

你想通过url传递多个参数吗?单击a选项卡发送给路由接收者,但我在你的问题中没有看到选项卡?请详细说明您的问题,告诉我们您到底想做什么?好的,问题已经被修改。这可以用两个单独的guid以相同的方式实现吗?@itminus使用查询字符串方法,当我们在同一页面内导航时(即仅更新查询字符串),不会调用OnParametersSet(),对吗?
<a href="../navigatetopage/1/img"></a>
@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;
        }
    }
}