從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