Heim >Backend-Entwicklung >C++ >Wie kann ich komplexe JSON-Arrays effizient von jQuery an ASP.NET MVC-Controller übergeben?
JSON und jQuery: Übergeben komplexer Arrays an ASP.NET MVC-Controller
In Szenarien, in denen wir ein Array komplexer Objekte senden müssen Bei einer Controller-Aktion ist es wichtig, die Kompatibilität zwischen dem clientseitigen und dem serverseitigen Code zu berücksichtigen. Schauen wir uns den von Steve Gentile beschriebenen Ansatz zur Lösung dieser Herausforderung genauer an.
Clientseitige Verarbeitung
Der jQuery-Code:
function getplaceholders() { // Collect data into an array var results = new Array(); ... var postData = { widgets: results }; // Send data to the controller with JSON serialization $.ajax({ url: '/portal/Designer.mvc/SaveOrUpdate', ... data: $.toJSON(widgets), ... }); }
Hier werden die Daten in einem Array gesammelt, in ein JSON-Objekt eingeschlossen und zur Übertragung an serialisiert Server.
Controller-Aktionskonfiguration
Die ASP.NET MVC-Controller-Aktion:
[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))] public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
Das [JsonFilter]-Attribut passt die zu empfangende Aktion an JSON-Daten. Es definiert den Parameternamen („Widgets“) und gibt den erwarteten JSON-Datentyp (List
Benutzerdefiniertes JSON-Filterattribut
public class JsonFilter : ActionFilterAttribute { ... public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.HttpContext.Request.ContentType.Contains("application/json")) { // Deserialize JSON data from request body string inputContent = ...; var result = JsonConvert.DeserializeObject(inputContent, JsonDataType); // Assign the deserialized object to the specified parameter filterContext.ActionParameters[Param] = result; } } }
Das JsonFilter fängt Anfragen mit JSON-Inhaltstyp ab, deserialisiert die JSON-Daten mithilfe der JsonConvert-Klasse von Json.NET und weist das Ergebnis zu auf den entsprechenden Aktionsparameter.
Durch die Verwendung dieses Ansatzes stellen wir effektiv eine Kommunikation zwischen den clientseitigen Daten und der serverseitigen Aktion her, sodass der Controller das komplexe Array von Objekten verarbeiten kann, die im JSON-Format empfangen werden.
Das obige ist der detaillierte Inhalt vonWie kann ich komplexe JSON-Arrays effizient von jQuery an ASP.NET MVC-Controller übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!