.net 8 中的服务器端 Blazor 组件,@onclick 事件未触发

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

在 .net 7 中的 Blazor 服务器中,我可以在 Page.blazor 中执行此操作:

@留言

<button class="btn btn-primary mt-2 btn-block" @onclick="SendMessage">Send Message</button>


@code {
    public string message { get; set; }

    private async Task SendMessage()
    {
        message = "Hello";
    }
}

当您单击按钮时,它会在页面上输出“Hello”。

但是,在 .net 8 中,在服务器端 Page.blazor 中的“Blazor Web 应用程序”(自动、服务器与 Web Assembly 混合)中,此按钮不起作用。

EditForm 中的按钮确实可以工作,但我不想使用它,我只想单击按钮来触发事件。

为什么这在 .net 8 中不起作用?我该如何做到这一点?

谢谢

asp.net-core blazor blazor-server-side .net-8.0 blazor-auto
1个回答
8
投票

渲染模式默认为

Static Server
,这是文档相关

在您的组件中添加

@attribute [RenderModeInteractiveServer]

在整个应用程序的 app.razor 中添加以下代码

@using static Microsoft.AspNetCore.Components.Web.RenderMode
.....
<Routes @rendermode="InteractiveServer" />
© www.soinside.com 2019 - 2024. All rights reserved.