Maison > développement back-end > C++ > Comment puis-je transmettre efficacement des tableaux JSON complexes de jQuery aux contrôleurs ASP.NET MVC ?

Comment puis-je transmettre efficacement des tableaux JSON complexes de jQuery aux contrôleurs ASP.NET MVC ?

DDD
Libérer: 2025-01-04 20:26:41
original
312 Les gens l'ont consulté

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

JSON et jQuery : transmission de tableaux complexes aux contrôleurs ASP.NET MVC

Dans les scénarios où nous devons envoyer un tableau d'objets complexes à une action du contrôleur, il est essentiel de considérer la compatibilité entre le code côté client et côté serveur. Examinons l'approche décrite par Steve Gentile pour résoudre ce défi.

Traitement côté client

Le code jQuery :

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),
        ...
    });
}
Copier après la connexion

Ici , les données sont rassemblées dans un tableau, enveloppées dans un objet JSON et sérialisées pour être transmises au serveur.

Configuration de l'action du contrôleur

L'action du contrôleur ASP.NET MVC :

[JsonFilter(Param = "widgets", JsonDataType = typeof(List<PageDesignWidget>))]
public JsonResult SaveOrUpdate(List<PageDesignWidget> widgets)
Copier après la connexion

L'attribut [JsonFilter] personnalise l'action à recevoir Données JSON. Il définit le nom du paramètre ("widgets") et spécifie le type de données JSON attendu (List).

Attribut de filtre JSON personnalisé

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;
        }
    }
}
Copier après la connexion

L'attribut de filtre JSON personnalisé JsonFilter intercepte les requêtes avec le type de contenu JSON, désérialise les données JSON à l'aide de la classe JsonConvert de Json.NET et attribue le résultat au paramètre d'action approprié.

En utilisant cette approche, nous établissons efficacement une communication entre les données côté client et l'action côté serveur, permettant au contrôleur de traiter le tableau complexe d'objets reçus en JSON. format.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal