Ich habe das folgende Problem:
Bei einem Button-Klick schicke ich einige Daten an den Server. Meine Controller-Aktion sieht folgendermaßen aus:
%Vor%Wo das MyViewModel so aussieht:
%Vor%Und der AJAX-Call ist folgender:
%Vor%Was ich bereits versucht habe:
Was mache ich hier falsch?
Vielen Dank im Voraus, dass Sie mir geholfen haben!
BEARBEITEN
Meine (Razor) Ansicht ist in diesem Moment nicht interessant, da sie nichts mit irgendetwas zu tun hat. Ich benutze keine der HTML.TextBoxFor (oder ähnlichen) Methoden, um die myEntries-Variable zu füllen. Es wird tatsächlich dynamisch gefüllt (weil es viele viele Bedingungen gibt). Für die Frage (und meine eigenen Tests) habe ich die Variable fest codiert. :)
Mit Ihrer Antwort und der Verwendung von JSON.stringify
Methode funktioniert es für mich
Ich habe die Antwort bekommen!
jQuery kann manchmal verwirrend sein.
dataType ist der Parameter, der angibt, was Sie vom Server zurückbekommen möchten. contentType ist der Parameter, der angibt, was Sie an den Server SENDEN.
Aus dem obigen Beispiel funktioniert es, wenn Sie hinzufügen:
contentType: 'application / json; charset = utf-8 ',
im AJAX-Anruf.
Nur zur Ergänzung der Antwort, wie die Liste erstellt wird, die zurück an den Controller gesendet wird. Das liegt daran, dass Sie das Array nicht mit dem Namen der Liste umbrechen müssen. Es sieht hässlich aus und kann nicht mit eingebauten Funktionen verwaltet werden. In diesem Beispiel wird gezeigt, wie JSON zurückgeschrieben wird, das MVC als eine Liste von interpretieren und interpretieren wird. (Aber selbst wenn das Array umgebrochen ist, funktioniert es immer noch, aber das ist statischer Inhalt und schwer zu verwalten)
In diesem Beispiel wurde das sortierbare Plugin von jQuery verwendet. Ich möchte das gesamte Listenmodell mit den neuen Ordnungsindizes zurückspeichern, um es in der Datenbank zu speichern.
%Vor%Und mein MVC-Controller ist so einfach wie ...
%Vor%Tags und Links asp.net-mvc-3 jquery ajax model-binding