Llamando a un método Blazor desde JavaScript

blazor javascript visual-studio

Pregunta

Estoy experimentando con Blazor en Visual Studio, específicamente con llamar a código Blazor desde JavaScript. Estoy razonablemente seguro de que tengo todas las bibliotecas adecuadas en su lugar. Sin embargo, cuando intento llamar a mi método Blazor con invokeMethodAsync, aparece el mensaje "no se ha establecido ningún despachador de llamadas .net". En mi archivo Index.Html, tengo esto:

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

(Es la alerta (motivo) que genera el mensaje de error)

He agregado un archivo de clase a mi proyecto Blazor y contiene esto:

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

He utilizado todas las plantillas en Visual Studio y la utilidad de línea de comandos dotnet -new blazor para crear mis puntos de inicio pero obtener el mismo mensaje en todos los proyectos. Me parece probable que me esté perdiendo algo fundamental aquí.

Respuesta popular

Peter Vogel: Sería genial si pudiera llamar a los métodos C # de Blazor desde su código JavaScript. En este momento, eso no es del todo posible: el simple hecho de llamar a Blazor C # desde JavaScript no funcionará (recibirá un mensaje sobre la falta de disponibilidad de un despachador de llamadas).

Sin embargo, lo que puede hacer es que una vez que su código Blazor se esté ejecutando, llame al código JavaScript desde su código C #. Una vez que haya hecho eso, su código JavaScript puede, a su vez, llamar al código Blazor.

Espero que esto resuelva el problema ...




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué