Post JSON-Daten über ein Formular in MVC4

Ich versuche, die POST-ein JSON-Objekt (JSON-freundlich-knockout-Modell, falls das von irgendeiner Relevanz) zu meinem MVC-controller, und der controller Rückkehr eine neue Ansicht. Um dies zu tun, ich sende die Daten mit einem Formular. Das problem ist, dass ich möchte, um die JSON automatisch in ein Modell, wenn der controller erhält.

Wenn ich auf einen AJAX-Aufruf für diese,

var actionModel = new Object();
actionModel.Controls = ko.toJS(self.controls());
var json = JSON.stringify(actionModel);
$.ajax({
    url: "MyController/Preview",
    type: "POST",
    contentType: 'application/json; charset=utf-8',
    cache: false,
    data: json,
    success: function (data) {
    }
});

...das JSON-Objekt erfolgreich deserialisiert und umgewandelt in eine Instanz von meine model-Klasse.

public ActionResult Preview(ActionModel actionModel) { ... }
public class ActionModel
{
    public List<ControlModel> Controls { get; set; }
}

Wenn ich will, um dies zu tun, mit einer form, die ich verstehe, dass ich das einfügen muss das JSON in ein verstecktes input-Feld, aber die beste, die ich verwalten können, wenn dies zu tun ist, erhalten die Daten als serialisierte string:

@using (Html.BeginForm("Preview", "MyController", FormMethod.Post, new { id = "previewForm" }))
{
    <input type="hidden" id="hiddenFieldName" />
}

public ActionResult Preview(string hiddenFieldName) { ... }

Konnte ich nur Deserialisieren es danach, aber ich würde es bevorzugen, wenn MVC konvertieren konnte es für mich so, als würde es mit einem AJAX-Aufruf. Ist das möglich?

Dank.

InformationsquelleAutor Alejo | 2012-11-02
Schreibe einen Kommentar