Maui Blazor 按钮点击导航

问题描述 投票:0回答:1

我有一个带有按钮的页面,该按钮调用异步 webapi,然后导航到另一个页面。然而,尽管代码运行没有错误,但它不会转到新页面。相反,当前页面会重新出现。

我的代码:

C#
private async void Method()
{
   //perform async web call.
   //code

   //Navigate to new page   
   navManager.NavigateTo("/new-page");
}

Razor
<button @onclick="Method">Button Description</button>

我想 onclick 按钮是为了执行页面更改而不是导航?我不知道,但我知道页面是正确的并且代码没有损坏。

navigation blazor maui
1个回答
0
投票

利用您提供的代码,我们可以创建以下最小可重现示例。

@page "/"
@inject NavigationManager NavManager

<PageTitle>Home</PageTitle>

<h1>Hello, world!</h1>

<button class="btn btn-primary mt-3" @onclick="DoAsync">Click me</button>

@code{
    private async void DoAsync()
    {
        //Fake an async call
        await Task.Delay(3000);
        NavManager.NavigateTo("/counter");
    }
}

这正常工作:等待 3 秒,然后导航。

虽然这个图案:

    private async void DoAsync()

是 UI 事件处理程序的 NoNo。应该是:

private async Task DoAsync()

这不是本例的根本原因。这就是你在做什么:

   //perform async web call.
   //code
```.
© www.soinside.com 2019 - 2024. All rights reserved.