Heim >Backend-Entwicklung >C++ >Wie übergebe ich Arrays komplexer Objekte mithilfe von JSON an ASP.NET MVC-Controller?
Arrays komplexer Objekte an ASP.NET MVC-Controller übergeben
In diesem Szenario möchten Sie ein Array komplexer Objekte an a übergeben Controller-Aktion. Um dies zu erreichen, sind mehrere Schritte notwendig.
Vorbereitung der Ansicht
Der bereitgestellte Code in der Frage bereitet bereits ein Array von Objekten vor. Der Schlüssel hier besteht darin, dieses Array in ein JSON-Format umzuwandeln, das vom Controller analysiert werden kann. Verwenden Sie dazu die Funktion $.toJSON() aus der jQuery-Bibliothek, wie im verbesserten Ansichtscode der Lösung zu sehen ist:
function getplaceholders() { // ... var postData = { widgets: results }; $.ajax({ // ... data: $.toJSON(widgets), // ... }); }
Decorating the Controller Action
Damit die Controller-Aktion die JSON-Daten akzeptieren und verarbeiten kann, muss sie mit einem benutzerdefinierten Attribut versehen werden. In diesem Fall verwenden wir das JsonFilter-Attribut:
[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))] public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
Die Param-Eigenschaft gibt den Parameternamen an, der die JSON-Daten empfängt, und JsonDataType definiert den erwarteten Datentyp für die Deserialisierung.
Benutzerdefinierte Attributfunktionalität
Die JsonFilterAttribute-Implementierung fängt die HTTP-Anfrage ab und prüft, ob sie Folgendes enthält JSON-Inhalt. Wenn ja, deserialisiert es das JSON mithilfe von JsonConvert.DeserializeObject von Json.NET in den angegebenen Datentyp und weist es dem entsprechenden Aktionsparameter zu.
public class JsonFilter : ActionFilterAttribute { // ... public override void OnActionExecuting(ActionExecutingContext filterContext) { // ... var result = JsonConvert.DeserializeObject(inputContent, JsonDataType); filterContext.ActionParameters[Param] = result; } }
Durch Befolgen dieser Schritte können Sie komplexe Arrays erfolgreich übergeben Objekte aus Ihrer Sicht auf Ihren ASP.NET MVC-Controller.
Das obige ist der detaillierte Inhalt vonWie übergebe ich Arrays komplexer Objekte mithilfe von JSON an ASP.NET MVC-Controller?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!