Вызов метода Blazor Из JavaScript

blazor javascript visual-studio

Вопрос

Я экспериментирую с Blazor в Visual Studio, в частности, вызывая код Blazor из JavaScript. Я достаточно уверен, что у меня есть все нужные библиотеки. Однако, когда я пытаюсь вызвать свой метод Blazor с invokeMethodAsync, я получаю сообщение «no.net call dispatcher установлен». В моем файле 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 для создания своих начальных точек, но получаю одно и то же сообщение во всех проектах. Мне кажется, что мне не хватает чего-то фундаментального здесь.

Популярные ответы

Питер Фогель: Было бы здорово, если бы вы могли вызвать методы Blazor C # из вашего кода JavaScript. Прямо сейчас, это не совсем возможно: просто вызов Blazor C # из JavaScript не будет работать (вы получите сообщение о том, что диспетчер вызовов недоступен).

Однако, что вы можете сделать, это когда ваш код Blazor запущен, вызовите код JavaScript с вашего кода на C #. Как только вы это сделаете, ваш код JavaScript может, в свою очередь, вызвать код Blazor.

Надеюсь, это решает проблему ...




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему