Heim >Backend-Entwicklung >C++ >Wie poste ich ein Array komplexer Objekte mithilfe von JSON und jQuery an einen ASP.NET MVC-Controller?
Arrays komplexer Objekte mit JSON und jQuery an einen ASP.NET MVC-Controller senden
Problem:
Wie kann ein Array komplexer Objekte an eine ASP.NET MVC-Controller-Aktion übergeben werden und welche Parameter sollte die Controller-Aktion haben? akzeptieren?
Controller-Aktionsmethode:
Die Controller-Aktionsmethode sollte einen Parameter vom Typ IList
Client- Nebencode:
Konvertieren Sie mit jQuery das Array von Objekten in einen JSON-String und senden Sie es Senden Sie es über eine AJAX-Anfrage mit den richtigen Datentyp- und Inhaltstyp-Headern an den Controller.
Clientseitiger Code – Erweitert:
Für eine bessere Handhabung des JSON-Inhalts , verwenden Sie die Json.NET-Bibliothek und legen Sie JsonDataType auf den Typ des zu deserialisierenden Arrays fest. Dadurch kann die ASP.NET MVC-Aktion ohne manuelles Parsen direkt an das deserialisierte Objekt gebunden werden.
ASP.NET MVC-Controller-Aktionsdekoration:
Dekorieren Sie die Controller-Aktion mit ein benutzerdefiniertes Attribut wie [JsonFilter], um die eingehende JSON-Anfrage abzufangen und das richtige Objekt in die Aktion zu deserialisieren Parameter.
JsonFilterAttribute Code:
public class JsonFilter : ActionFilterAttribute { public string Param { get; set; } public Type JsonDataType { get; set; } public override void OnActionExecuting(ActionExecutingContext filterContext) { if (filterContext.HttpContext.Request.ContentType.Contains("application/json")) { string inputContent; using (var sr = new StreamReader(filterContext.HttpContext.Request.InputStream)) { inputContent = sr.ReadToEnd(); } var result = JsonConvert.DeserializeObject(inputContent, JsonDataType); filterContext.ActionParameters[Param] = result; } } }
Das obige ist der detaillierte Inhalt vonWie poste ich ein Array komplexer Objekte mithilfe von JSON und jQuery an einen ASP.NET MVC-Controller?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!