Blazor 路由中的多个查询字符串参数

2024-01-06

我当前的项目中有多个从 url 检索 1 个查询参数的工作示例,但是当尝试对多个 url 参数遵循相同的约定时,我在 chrome 调试器控制台中收到以下错误:

Error: System.InvalidOperationException: 'Router' cannot find any component with a route for '/confirmemail'.

我的页面路由定义为:

@page "/confirmemail/{Token}/{UserId}"

and the @functions{...}部分包含以下属性:

[Parameter]
string Token { get; set; }
[Parameter]
string UserId { get; set; }

我正在尝试检索如下所示的 url 的查询字符串参数:

http://localhost:50466/confirmemail?Token=SomeReallyLargeToken&UserId=SomeGuidUserId

我怎样才能实现这个目标?


对于任何对如何传递和获取查询字符串样式的参数感兴趣的人

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Blazor 路由中的多个查询字符串参数 的相关文章

随机推荐