首页 > 解决方案 > 登录后导航回到主页面

问题描述

我正在使用 Blazor 构建服务器端应用程序。我没有使用任何 javascript、react 和其他框架。我正在使用 Blazor 默认模板。当我转到登录页面并输入正确的凭据时,我想导航到主页。我正在使用以下代码来做到这一点:

  public void LoginCommand()
            {
                var authenticationStatProvider = new TaskClientAuthenticationStateProvider();

                if (this.Username == "Lyubo" && this.Password == "123")
                {
                    TaskClientAuthenticationStateProvider.IsAuthenticated = true;

                    authenticationStatProvider.NotifyAuthenticationStateChanged();

                    NavigationManager.NavigateTo($"/home/{this.Username}");
                }
            }

如果这很重要,我已将视图与两个文件中的逻辑分开,并且我的 LoginPageBase 继承了 ComponentBase。执行上面的代码后,我看到它导航回 home

@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 中?谢谢 :)

标签: c#blazor

解决方案


推荐阅读