使用@onclick 之类的东西时,blazor 会进行回发吗?

Does blazor do a postback when using things like @onclick?

如果不是,它如何在没有回发的情况下从服务器获取信息?

不,不是。

以下是 Blazor 的三个最重要的功能:

  1. 它几乎可以让你用 C# 做所有事情,也就是说,用更少的东西 JavaScript。
  2. 它通过一系列恒定的 SignalR 通信 发送和接收部分页面更新,而不是大量的 post / 重新加载事件。
  3. 由于它是 .NET,因此您可以访问 .NET 框架附带的所有库,而不必依赖 javascript 或 JQuery 库。

这里有一个例子来说明它的响应能力。在 FileInput 的处理程序中,我可以执行以下操作:

   async Task HandleFileUpload(InputFileChangeEventArgs e)
    {
        int counter = 0;
        foreach (var imageFile in e.GetMultipleFiles(maxAllowedFiles))
        {
            ProgressMessage = $"Processing image: {++counter} / {e.FileCount} ";
            StateHasChanged(); // The user sees the update progress info RIGHT NOW
            // 
            // Do the file transfer, convert and resize it with .NET System.Drawing library
            //
        }
     }

在每个 文件传输、处理和保存之前,用户正在收到更新的进度消息