none
ASP NET MVC JavaScript URL.Action RRS feed

  • Frage

  • Hallo Forum,

    in einer VIEW übergebe ich Daten an einen Controller mit

    funktion TextExport(){

     var url = '@Url.Action("TextExport", "Home")';           

                var params = "{'" + NID + "'}";
                var params1 = "{'@ViewBag.ControllerMethode'}";
                          

                $.ajax({
                    type: "POST",
                    url: url,
                    cache: false,
                    data: { id: params, CM: params1 }
                });

    });

    Im Controller "Home' habe ich folgendes :


            public ActionResult TextExport(string id, string CM)
            {
               ......           

                return View();
            }

    Die Übergabe der Parameter funktioniert.

    Aber die View aus dem Controller wird nicht "gestartet / angezeigt" es bleibt die View aus der die funktion aufgerufen wurde aktiv.

    Was mache ich falsch ?

    Und wie könnte ich die View im Controller in einem neuen Browser Fenester öffnen ?

    Kann mir da bitte jemand helfen ?  DANKE.


    Gruß Roland


    • Bearbeitet Roland DE Dienstag, 14. März 2023 18:32
    Dienstag, 14. März 2023 18:32

Alle Antworten

  • Hallo Roland,

    Du kannst nicht serverseitig steuern was clientseitig passiert. Die Aufgabe von ASP.NET MVC ist es eine statische Website (serverseitig) zu bauen und diese an den Client auszuliefern. Danach hat der Server keine Verbindung mehr zum Client und somit keinen Zugriff.

    Was geht ist clientseitig mit JavaScript einen Websocket zum Server zu öffnen und darüber zu kommunizieren. Ein Websocket bleibt bestehen. Aber der Server kann darüber nur Befehle senden die dann mit JavaScript ausgeführt werden müssen.

    Ich würde dir aber dann empfehlen zu ASP.NET Core Blazor Server zu wechseln. Mit JavaScript so etwas zu entwickeln ist abartig :)

    Das ist allein deswegen so da dein Router hinter dem dein Computer ist nichts anders zulässt außer Websocket. Das ganze nennt sich NAT.

    Dein Computer sendet eine Anfrage an Google. Diese Anfrage geht zuerst an deinen Router. Der Router merk sich diese Anfrage und hält Ausschau nach einer Antwort von Google. Sobald die Antwort da ist leitet der Router diese Anfrage an deinen Computer weiter und vergisst die Verbindung. Eine möglich weitere Anfrage von Google kann nicht mehr an deinen Computer weitergeleitet werden. Wenn das so wäre, hätte jeder Server im Internet den Du jemals angefragt hast einen direkten Zugriff auf deinen Computer.

    Der Browser ist kein Fenster zum Server. Der Browser erhält HTML/CSS Code und bau auf deinem Computer die Website


    Gruß Thomas
    Der Junior lernt täglich, um Senior zu werden.
    Der Senior lernt täglich, da er weiß, dass er immer Junior bleiben wird.
    Github



    Dienstag, 14. März 2023 20:35