Heim >Backend-Entwicklung >C++ >Wie poste ich ein Array komplexer Objekte mithilfe von JSON und jQuery an einen ASP.NET MVC-Controller?

Wie poste ich ein Array komplexer Objekte mithilfe von JSON und jQuery an einen ASP.NET MVC-Controller?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-02 20:25:38916Durchsuche

How to Post an Array of Complex Objects to an ASP.NET MVC Controller Using JSON and jQuery?

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 haben.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn