none
ASP.NET Core Client / Server Austausch RRS feed

  • Frage

  • Hallo,

    ich bin relativ neu in der Webentwicklung und komme bzgl. der Funktionsweise noch nicht ganz dahinter.

    Warum funktioniert folgender Ansatz nicht?

    In Index.cshtml.cs:

            private int count = 0;
            public JsonResult OnGetTest()
            {                               
                if (++count < 10)
                {
                    return new JsonResult(NOT_ERROR_MSG);
                }
                else
                    return new JsonResult(ERROR_MSG);
            }

    In Index.cshtml:

    @section Scripts{
        <script>
    
            $(function() {
                setInterval(InvokeAction, 5000)
            });
    
            function InvokeAction(param) {
    
                $.ajax({
                    url: '/Configuration/Index?handler=Test'
                }).done(function(result) {
                    $("#machineMsg").text(result)
                })
                
            }
    
        </script>
    }

    #machineMsg ist die ID eines Buttons.

    Eigentlich kann ich mir schon vorstellen warum dies nicht funktionieren kann (Server/Client). Aber wie sieht denn ein Lösungssatz aus?

    Mein erster Versuch sah wie folgt aus: im PageModel Index.cshtml.cs hatte ich folgende Zeile: _machineControl.MachineStoped += MachineReport; Sobald MachineReport ausgelöst wird, sollte die Eigenschaft: [BindProperty] MachineMessage = "..." die in der Page eingebunden ist: <button...>@Model.MachineMessage</button> einen neuen string erhalten. Das funktioniert aber leider nicht, wie ich feststellen konnte.

    Viele Grüße

    John

    Freitag, 8. Juli 2022 06:21

Antworten

Alle Antworten

  • Hallo John,
    Das funktioniert aber leider nicht, wie ich feststellen konnte.
    Deine Beschreibung ist nicht sehr aufschlussreich und man kann der Beschreibung entnehmen, was Dein Ziel ist (die Festlegung der Eigenschaft MachineMessage), nicht jedoch, was stattdessen beobachtet wird. Wird eine Fehlermeldung ausgegeben? Wenn ja, führe sie bitte wortgenau an. Bleibt die Eigenschaft MachineMessage bei einer leeren Zeichenfolge? Was für ein Ergebnis gibt OnGet zurück?

    Gruß,
    Dimitar

    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 8. Juli 2022 15:09
    Moderator
  • Hallo Dimitar. Okay kurze Beschreibung zu meiner Aufgabe:

    Über die Web-App an der ich arbeite, kann eine Förderanlage konfiguriert werden. Unser Kunde möchte außerdem, dass Fehlermeldungen auf das Web-UI just in time angezeigt werden. Die Funktion sieht wie folgt aus: sobald die Maschine (Förderanlage) eine Meldung (über UDP) sendet, wird ein Event ausgelöst. Dieses Event schreibt einen String in die oben genannte Eigenschaft MachineMessage:

    private void OnMachineError(object sender, MachineEventargs e)
    {
        MachineMessage = e.Message;
    }

    Dieser Codeabschnitt befindet sich im PageModel.

    Jetzt würde ich gerne wollen, dass in der Page beim Kunden ...<a>@Model.MachineMessage</a>... die Nachricht ausgegeben wird. Es wird aber nichts angezeigt. Der String bleibt leer.

    Mir ist klar, dass das nicht funktionieren kann, da der Code auf dem Server ausgeführt wird. Meine Frage ist: wie kann ich das umsetzen, dass es funktioniert?

    Ich hoffe das ist verständlich. Wenn nicht bitte ich um Rückmeldung. Danke :)

    Samstag, 9. Juli 2022 18:10
  • Falls es jemanden interessiert, habe ich mir mit SignalR (Overview of ASP.NET Core SignalR | Microsoft Docs) helfen können.  

    Da ich in der Webprogrammierung noch nicht ganz fit bin, musste ich erst etwas mehr recherchieren. 

    Fr. Grüße

    • Als Antwort markiert JohnPlrz Mittwoch, 14. September 2022 13:03
    Mittwoch, 14. September 2022 13:03