Dot-Net-Core
Blazor 路由中的多個查詢字元串參數
我目前的項目中有多個從 url 檢索 1 個查詢參數的工作範例,但是當嘗試對多個 url 參數遵循相同的約定時,我在 chrome 調試器控制台中收到以下錯誤:
Error: System.InvalidOperationException: 'Router' cannot find any component with a route for '/confirmemail'.我的頁面路由定義為:
@page "/confirmemail/{Token}/{UserId}"該
@functions{...}部分包含以下屬性:[Parameter] string Token { get; set; } [Parameter] string UserId { get; set; }我正在嘗試檢索如下所示的 url 的查詢字元串參數:
http://localhost:50466/confirmemail?Token=SomeReallyLargeToken&UserId=SomeGuidUserId我怎樣才能做到這一點?
你能試試嗎?
http://localhost:50466/confirmemail/SomeReallyLargeToken/SomeGuidUserId我認為它應該工作。
更新:如果您想完全從查詢參數中獲取值,則此處為https://learn-blazor.com/pages/router/
對於任何對如何以查詢字元串樣式傳遞和獲取參數感興趣的人
http://localhost:50466/confirmemail?Token=SomeReallyLargeToken&UserId=SomeGuidUserId頁面路由沒有改變
@page "/confirmemail/"你應該得到像
protected override void OnInitialized() { var uri = navigationManager.ToAbsoluteUri(navigationManager.Uri); //you can use IURIHelper for older versions if(QueryHelpers.ParseQuery(uri.Query).TryGetValue("Token", out var token)) { var token_par = token.First(); } if(QueryHelpers.ParseQuery(uri.Query).TryGetValue("UserId", out var userid)) { var userid_par = userid.First(); } }記得添加以下內容
@inject NavigationManager navigationManager @using Microsoft.AspNetCore.WebUtilities @*for QueryHelpers*@我正在使用 preview-9