Heim >Backend-Entwicklung >C++ >Wie kann ich komplexe JSON-Arrays effizient von jQuery an ASP.NET MVC-Controller übergeben?

Wie kann ich komplexe JSON-Arrays effizient von jQuery an ASP.NET MVC-Controller übergeben?

DDD
DDDOriginal
2025-01-04 20:26:41217Durchsuche

How Can I Efficiently Pass Complex JSON Arrays from jQuery to ASP.NET MVC Controllers?

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) an.

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!

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