Как передать в Blazor e-mail через адресную строку?

Необходимо передать в приложение на Blazor e-mail через адресную строку. Примерно, так: http://admin.com/requeststatistics/[email protected]

Попробовал стандартный вариант:

@page "/RequestStatistics/{userEmail}"
 
... 
 
@code {    
    [Parameter]
    public string userEmail { get; set; }
...

Но он работает только на одном слове. Первая же точка в адресе ломает схему, и я получаю сообщение

Страница http://admin.com/requeststatistics/[email protected] не найдена.

Попробовал закодировать e-mail, но это не помогло, т.к. закодировался только символ '@', а сбоит, как уже написал, на первой же точке в e-mail.


Ответы (1 шт):

Автор решения: Abejon
@inject NavigationManager NavManager
...
/// <summary>
////Получаем e-mail пользователя из адресной строки
/// </summary>
/// <returns>E-mail пользователя, переданный в качестве параметра в адресе</returns>
private string GetUserEmail()
{
    var uri = NavManager.ToAbsoluteUri(NavManager.Uri);
    var userEmail = HttpUtility.ParseQueryString(uri.Query).Get("userEmail");

    return userEmail;
}

E-Mail передаётся в строке адреса ?userEmail=user_email

→ Ссылка