Как передать в 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