.Net Core Blazor Как передать несколько параметров? - PullRequest
1 голос
/ 23 декабря 2019

Нажмите на вкладку, чтобы передать несколько параметров. Как получить

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

На странице, на которую вы хотите перейти, добавьте параметр к вашему маршруту:

@page "/navigatetopage/"

[Parameter]
private string myvalue{ get; set; }

1 Ответ

3 голосов
/ 23 декабря 2019

Самый простой способ - использовать параметры маршрута вместо 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;
        }
    }
}
...