Blazor @OnClick 在 MacOS 上 .NET 6+

huangapple go评论67阅读模式
英文:

Blazor @OnClick on MacOS .net 6+

问题

我已部署了我的Blazor应用程序在.NET 6上(也尝试了7.0),部署在一个Web服务器上。

这是一个非常简单的应用程序,只有一个InputFile和一个Button。

当我上传一个文件后,之后无法使用任何按钮。

看起来在iOS上的文件对话框中断了单页应用程序的生命周期,有没有恢复它的方法?

英文:

I have deployed my Blazor App .Net6 (tried 7.0 too) on a Webserver.

This is a very simple app with One InputFile, and One Button.

When I upload a file, I can use any buttons afteward.

It Looks like the file dialog on Ios breaks the single page app lifecycle, is there a way to restore it?

答案1

得分: 1

所以,这与事件无关,而与我使用的流的处理有关。

确保绝对关闭和处理来自inputfile事件的任何流。否则,所有事件都将被冻结。

良好处理:

Buffer = new byte[file.Size];
using (var Stream = file.OpenReadStream())
{
    await Stream.ReadAsync(Buffer);
}

糟糕的处理将禁用所有按钮。

await file.OpenReadStream().ReadAsync(Buffer);
英文:

So, It has nothing to do with events, and all with the handling of the stream I used.

Make absolutly sure that you close and dispose any stream from the inputfile event. Otherwise all events will be frozen.

GOOD Handling :

   Buffer = new byte[file.Size];
    using (var Stream = file.OpenReadStream())
    {
        await Stream.ReadAsync(Buffer);
    }

BAD Handling this will DISABLE all buttons.

await file.OpenReadStream().ReadAsync(Buffer);

huangapple
  • 本文由 发表于 2023年7月20日 18:30:04
  • 转载请务必保留本文链接:https://go.coder-hub.com/76728967.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定