Maison >développement back-end >C++ >Comment puis-je transmettre efficacement des tableaux JSON complexes de jQuery aux contrôleurs ASP.NET MVC ?
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), ... }); }
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)
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; } } }
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!