Несколько параметров строки запроса в маршрутизации Blazor - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть несколько рабочих примеров в моем текущем проекте по извлечению 1 параметра запроса из URL, однако при попытке выполнить одно и то же соглашение для нескольких параметров 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

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Это (/{Token}/{UserId}) не шаблон строки запроса.Это часть URL шаблона маршрута (параметров маршрута).Это строка запроса: ?Token=SomeReallyLargeToken&UserId=SomeGuidUserId.

Я не уверен в этом прямо сейчас, но это может сработать: http://localhost:50466/confirmemail/SomeReallyLargeToken/SomeGuidUserId

Если вы хотите получить параметры запроса (не параметры маршрута),вы хотите использовать IUriHelper следующим образом:

var uri = new Uri(UriHelper.GetAbsoluteUri());

Обратите внимание, что вы должны проанализировать возвращаемое значение ... Однажды я видел утилиту, созданную сообществом Blazor, которая делает это.

Надеюсьэто помогает ...

0 голосов
/ 15 декабря 2018

Не могли бы вы попробовать?

http://localhost:50466/confirmemail/SomeReallyLargeToken/SomeGuidUserId

Я думаю, что это должно работать.

ОБНОВЛЕНИЕ: Если вы хотите получить значения точно из параметров запроса, хороший пример здесь https://learn-blazor.com/pages/router/

...