Aufruf einer Blazor-Methode aus JavaScript

blazor javascript visual-studio

Frage

Ich experimentiere mit Blazor in Visual Studio, insbesondere mit dem Aufruf von Blazor-Code aus JavaScript. Ich bin ziemlich zuversichtlich, dass ich die richtigen Bibliotheken an Ort und Stelle habe. Wenn ich jedoch versuche, meine Blazor-Methode mit invokeMethodAsync aufzurufen, erhalte ich die Meldung "Kein .net-Call-Dispatcher wurde gesetzt". In meiner Index.Html-Datei habe ich Folgendes:

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

(Es ist die Warnung (Grund), die die Fehlermeldung generiert)

Ich habe meinem Blazor-Projekt eine Klassendatei hinzugefügt, die folgendes enthält:

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

Ich habe alle Vorlagen in Visual Studio und das Befehlszeilendienstprogramm dotnet -new blazor verwendet, um meine Startpunkte zu erstellen, aber in allen Projekten die gleiche Nachricht zu erhalten. Es scheint mir wahrscheinlich, dass ich etwas Grundlegendes vermisse.

Beliebte Antwort

Peter Vogel: Es wäre schön, wenn Sie Blazor C # Methoden von Ihrem JavaScript-Code aus aufrufen könnten. Im Moment ist das nicht ganz möglich: Einfach Blazor C # von JavaScript aus aufrufen funktioniert nicht (Sie erhalten eine Meldung, dass ein Call Dispatcher nicht verfügbar ist).

Sie können jedoch, sobald Ihr Blazor-Code ausgeführt wird, JavaScript-Code von Ihrem C # -Code aus aufrufen. Sobald Sie dies getan haben, kann Ihr JavaScript-Code wiederum den Blazor-Code aufrufen.

Hoffe das löst das Problem ...




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum