从JavaScript调用Blazor方法

blazor javascript visual-studio

我正在使用Visual Studio中的Blazor进行实验,特别是从JavaScript调用Blazor代码。我有理由相信我已经拥有了所有合适的库。但是,当我尝试使用invokeMethodAsync调用我的Blazor方法时,我收到消息“no .net call dispatcher has set”。在我的Index.Html文件中,我有这个:

<script> DotNet.invokeMethodAsync("BlazorFour.App", "HelloYou").then(data => alert(data), reason => alert(reason)); </script>

(这是生成错误消息的警报(原因))

我已经在我的Blazor项目中添加了一个类文件,它包含:

using Microsoft.JSInterop;
using System.Threading.Tasks;
public class HelloWorld
{
[JSInvokable]
public static Task<string> HelloYou()
{
    return Task.FromResult("Hello, ");
}
}

我已经使用了Visual Studio中的所有模板和dotnet -new blazor命令行实用程序来创建我的起始点,但在所有项目中都获得相同的消息。对我而言,我似乎错过了一些基本的东西。

热门答案

Peter Vogel:如果您可以从JavaScript代码中调用Blazor C#方法,那就太棒了。现在,这不太可能:简单地从JavaScript调用Blazor C#将无效(您将收到有关呼叫调度程序不可用的消息)。

但是,你可以做的是,一旦你的Blazor代码运行,就从你的C#代码中调用JavaScript代码。完成后,您的JavaScript代码可以调用Blazor代码。

希望这能解决问题......



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow