In der Steuerung habe ich:
C #
%Vor%Die obige String-Deklaration ist gebrochen. In der Ansicht habe ich eine Methode, die ich im Grunde kopieren und einfügen, die ich auf stackoverflow gefunden habe:
JavaScript
%Vor%Das Ereignis ist einfach:
JavaScript
%Vor%Die updateOrderJS () -Methode wird ausgelöst (mit einer Warnung überprüft), der Haltepunkt jedoch nicht.
In Asp.Net MVC müssen Sie Ihre Methode nicht mit WebMethod
dekorieren. Sie erstellen einfach eine Aktion (eine Methode) und geben ein Ergebnis daraus zurück. Für Beispiel:
Und in Ihrem View
könnten Sie ein JavaScript wie dieses versuchen (mit der $ .ajax jquery Methode) - Siehe die Kommentare):
In MVC benötigen Sie nicht den [WebMethod]
-Stuff - Sie können nur eine reguläre Controller-Aktion haben, die ein ActionMethod
zurückgibt (oder null, wenn Sie keinen Rückgabewert benötigen). Das WebMethod
-Attribut mit statischen Methoden ist für WebForms, nicht für MVC.
Ihre URL im Javascript wäre die URL zu dieser Aktion, die Sie in Razor mit @Url.Action("updateOrder", "Orders")
erreichen können, wobei "Aufträge" der Name Ihres Controllers ist.
Stellen Sie sicher, dass "url" im Format page.aspx / updateOrder ist.
Geben Sie datatype: json
Stellen Sie sicher, dass Ihr updateOrderJS()
aufgerufen wird.
Stellen Sie sicher, dass contentType: "application/json; charset=utf-8"
enthalten ist.
Hinweis: [WebMethod]
wird zum Aufrufen von Webforms-Methoden verwendet, nicht von MVC.
Es sieht so aus, als würden Sie die URL der MVC-Route in das action
-Attribut Ihres <form>
-Tags eingeben. Ich kann nicht sehen, wie dieses Attribut aussieht, weil du deinen HTML-Code nicht hochgeladen hast, aber von dem, was ich sehen kann, könnte der Wert dieses Attributs falsch sein.
In den meisten Fällen ist die URL für eine bestimmte MVC-Aktion http://ServerDomain/Path(IfAny)/ControllerName/ActionName
. Zum Beispiel, wenn Sie einen Controller und eine Aktion wie folgt haben ...
... und Ihre ASP.NET-Anwendung wird auf www.example.com bereitgestellt. Die URL im action
-Attribut Ihres <form>
-Tags wäre http://www.example.com/Stack/Overflow
.
Natürlich können andere Einstellungen in Ihrem ASP.NET MVC diese URLs ändern, z. B. die Routeneinrichtung in der RegisterRoutes
-Methode von global.asax oder vielleicht, wenn Ihre Controller in Bereiche unterteilt sind. Wenn die URL Ihres <form>
korrekt angezeigt wird, posten Sie den HTML-Code zusammen mit dem relevanten Controller-Routing-Code in Ihrer ASP.NET-App.
Wenn sich Ihr Formular in einer Razor-Ansicht (cshtml-Datei) befindet, können Sie <form action="@Url.Action({ controller = "ControllerName", action = "ActionName" })" method="post">
verwenden, um die korrekte Formular-URL zu generieren.
Tags und Links asp.net-mvc javascript c# jquery ajax