Я создаю серверное приложение с помощью Blazor. Я не использую какие-либо javascript, реагировать и другие рамки. Я использую шаблон Blazor по умолчанию. Когда я go на странице входа в систему и введите правильные учетные данные, я хочу перейти на домашнюю страницу. Для этого я использую следующий код:
public void LoginCommand()
{
var authenticationStatProvider = new TaskClientAuthenticationStateProvider();
if (this.Username == "Lyubo" && this.Password == "123")
{
TaskClientAuthenticationStateProvider.IsAuthenticated = true;
authenticationStatProvider.NotifyAuthenticationStateChanged();
NavigationManager.NavigateTo($"/home/{this.Username}");
}
}
Я отделил представление от logi c в двух файлах, если это имеет значение, и мой LoginPageBase наследует ComponentBase. После выполнения вышеприведенного кода я вижу, что возвращается домой .
@page "/home"
@page "/home/{userName}"
@inherits LayoutComponentBase
<div class="sidebar ">
<NavMenu />
</div>
<div class="main">
<div class="top-row px-4">
<NavLink class="nav-link" href="loginpage">
<span class="oi oi-plus" aria-hidden="true"></span> Login
</NavLink>
</div>
<div class="content px-4">
@Body
</div>
</div>
@code{
[CascadingParameter]
public Task<AuthenticationState> AuthenticationStateTask { get; set; }
[Parameter]
public string userName { get; set; }
}
Кажется, что я каким-то образом дублирую (потому что я не перемещаюсь только на @Body, а на всю домашнюю страницу) главную страницу, и я не могу понять, как исправить это поведение? Как я могу разместить свой вид в @Body с другой страницы? Спасибо:)