在 .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 中不起作用?我该如何做到这一点?
谢谢
渲染模式默认为
Static Server
,这是文档相关
在您的组件中添加
@attribute [RenderModeInteractiveServer]
或
在整个应用程序的 app.razor 中添加以下代码
@using static Microsoft.AspNetCore.Components.Web.RenderMode
.....
<Routes @rendermode="InteractiveServer" />