Veröffentlichen Sie JSON-Daten über ein Formular in MVC4

8

Ich versuche, ein JSON-Objekt (ein JSON-ified-Knockout-Modell, wenn das relevant ist) an meinen MVC-Controller zu senden und den Controller eine neue Ansicht zurückgeben zu lassen. Dazu sende ich die Daten mit einem Formular. Das Problem ist, dass ich möchte, dass JSON automatisch in ein Modell konvertiert wird, wenn der Controller es empfängt.

Wenn ich dafür einen AJAX-Aufruf verwenden würde,

%Vor%

... das JSON-Objekt wurde erfolgreich deserialisiert und in eine Instanz meiner Modellklasse konvertiert.

%Vor%

Wenn ich das mit einem Formular machen möchte, muss ich das JSON in ein verstecktes Eingabefeld einfügen, aber das Beste, was ich dabei tun kann, ist, die Daten als serialisierte Zeichenfolge zu erhalten:

> %Vor%

Ich könnte es danach einfach deserialisieren, aber ich würde es wirklich bevorzugen, wenn MVC es für mich konvertieren könnte, wie es bei einem AJAX-Aufruf wäre. Ist das möglich?

Danke.

    
Alejo 02.11.2012, 13:54
quelle

2 Antworten

2

Angenommen, Sie möchten Daten, die als json codiert sind, mit einem Formular und ohne XHR posten, ich glaube nicht, dass es out-of-the-box möglich ist.

Formulare erlauben nicht viele Inhaltstypen. Ссылка

Wenn Sie json als String veröffentlichen, ist es wahrscheinlich möglich, einen Modellbinder zu erstellen, der nach Strings sucht, die wie json aussehen und dort mit der Deserialisierung umgehen. Nicht das Schönste, besonders wenn es nur für eine seltsame Situation ist.

    
Kenneth Ito 04.11.2012, 17:24
quelle
0

Anstelle der manuellen Deserialisierung können Sie das Form-post-Ereignis abfangen und Ihren eigenen Beitrag rekonstruieren, indem Sie das zusätzliche JSON-Objekt hinzufügen. Hier ist ein Beispiel, das die Methode serializeObject aus diesem Beitrag verwendet ):

%Vor%     
Johann 02.11.2012 18:57
quelle