Страница *.blazor - как получить параметры адресной строки
Есть некий файл RequestStatistics.blazor:
@page "/RequestStatistics"
...
@code {
...
}
Используется ASP.Net Core v. 3.2.1 Как в секции @code получить доступ к параметрам адреса? Передавать параметр как часть адреса не получается, т.к. это должен быть e-mail, а он может содержать точки, и в этом случае возникает ошибка. Request в коде недоступен или я не знаю, как его правильно создать.
Ответы (2 шт):
Вы можете попробовать сделать так:
@page "/test"
<h3>Email: @Email</h3>
@code {
[Parameter]
[SupplyParameterFromQuery]
public string? Email { get; set; }
}
Это позволяет передавать параметры из Query String, т.е. страница будет доступна по /[email protected] и свойство Email будет содержать переданный email адрес.
Если у вас название парамента в url и в коде не сходится, то вы можете указать любое другое как параметр Name в SupplyParameterFromQuery, например: [SupplyParameterFromQuery(Name = "email").
Мне нужно было проинжектить NavigationManager:
@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;
}