【问题标题】:How to get events for Blazor in C# working?如何在 C# 中获取 Blazor 的事件?
【发布时间】:2021-10-06 08:16:30
【问题描述】:

所以我正在用 C# 制作一个带有 blazer 的网站。我正试图让它在有人播放视频时更改屏幕上的文本......但它不起作用。

@page "/PageSeven"

<p>Play the video</p>

<video @onplay="@onClickPlay" controls width="1280" height="720">
    <source src="/Special.mp4" type="video/mp4">
</video>

<h1>@fool</h1>

@code   {

    private String fool = "";

    private void onClickPlay() {
    fool = "YOU FOOL!";
}

}

【问题讨论】:

  • 有趣,这看起来应该有效。

标签: c# html web event-handling blazor


【解决方案1】:

--编辑--

这个答案没有用。留给后代吧。


不要在你的处理程序中返回void。这不会触发更新。使用TaskAsync Task

您可以在方法末尾添加StateHasChanged(),但我建议更改签名。

对于短命令,您还可以使用 lambda 方法:

<video @onplay="()=> fool = "YOU FOOL!" controls width="1280" height="720">

【讨论】:

  • 不,在 Blazor 活动中始终可以接受 void。试一试,我无法触发任何事件。
  • 好的,我已经检查过了,事件根本没有触发。另外,我有一个自己的 .mp4 文件,它只播放音频,所以我不认为直接流可以保证正常工作。我使用 Azure 媒体服务来处理这些东西,但它并不便宜。
  • 看起来 Blazor 实现还没有发生。 OP 将需要使用一些(我猜相当基本的)JS Interop。
  • 事件are handled,我觉得有些东西坏了。
  • 这种情况已经有一年了。他们说他们修好了,但显然没有。 github.com/dotnet/aspnetcore/issues/20983 幸运的是,为它连接 JavaScript 互操作应该很容易。
猜你喜欢
  • 2019-10-02
  • 2020-03-31
  • 2019-12-15
  • 2020-08-04
  • 1970-01-01
  • 1970-01-01
  • 2019-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多