Asp.net-Core

.Net Core Blazor 如何傳遞多個參數?

  • April 22, 2022

點擊一個 TAB 以傳遞多個參數。領取方式

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

在您要導航到的頁面中,將參數添加到您的路線:

@page "/navigatetopage/"

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

最簡單的方法是使用 Route 參數而不是 QueryString:

@page "/navigatetopage/{id:int}/{key}"

@code {
   [Parameter] public int Id{get;set;}
   [Parameter] public string Key{get;set;}

   ...
}

網址看起來像:

<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;
       }
   }
}

引用自:https://stackoverflow.com/questions/59449927