3

如果我在 Shared - LoginPage.razor 中创建一个页面:

@inherits LayoutComponentBase

@inject IJSRuntime JSRuntime;
@inject NavigationManager NavigationManager;


<button @onclick="onBtnClick"> sfsdf</button>

@code
{
    public void onBtnClick()
    {
        NavigationManager.NavigateTo( "/Error" );
    }
}

在 App.razor 中将 DefaultLayout 更改为上面的新页面:

<Router AppAssembly="@typeof(Program).Assembly">
    <Found Context="routeData">
        <RouteView RouteData="@routeData" DefaultLayout="@typeof(LoginPage)" />
    </Found>
    <NotFound>
        <LayoutView Layout="@typeof(LoginPage)">
            <p>Sorry, there's nothing at this address.</p>
        </LayoutView>
    </NotFound>
</Router>

然后在 Pages 中创建一个页面。假设 ErrorPage.razor :

@page "/Error"
<h3>ErrorPage</h3>

@code 
{
}

如果我运行应用程序并单击按钮,页面应该会更改为错误页面,但只有 URL 会更改。

  • 如何切换到错误页面?
4

1 回答 1

3

我认为,您错过了 LoginPage 引导组件中的 @Body 标记,该标记将在单击按钮时加载您的错误组件。

登录页面.razor

@inherits LayoutComponentBase
@inject NavigationManager navigationManager

<button @onclick="onButtonClick">Go To Error Page</button>

<div class="bodyLoginPage">
    @Body
</div>

@code{
    public void onButtonClick()
    {
        navigationManager.NavigateTo("/Error");
    }
}

希望,它会有所帮助。谢谢

于 2020-06-03T07:06:38.030 回答