Maison >développement back-end >C++ >Comment publier un tableau d'objets complexes sur un contrôleur ASP.NET MVC à l'aide de JSON et jQuery ?
Publication de tableaux d'objets complexes avec JSON et jQuery sur un contrôleur ASP.NET MVC
Problème :
Comment un tableau d'objets complexes peut-il être transmis à une action de contrôleur ASP.NET MVC et quels paramètres doivent L'action du contrôleur est-elle acceptée ?
Méthode d'action du contrôleur :
La méthode d'action du contrôleur doit avoir un paramètre de type IList
Code côté client :
À l'aide de jQuery, convertissez le tableau d'objets en une chaîne JSON et envoyez-la au contrôleur via une requête AJAX avec les en-têtes de type de données et de type de contenu corrects.
Code côté client - Amélioré :
Pour mieux gestion du contenu JSON, utilisez la bibliothèque Json.NET et définissez JsonDataType sur le type du tableau à désérialiser. Cela permet à l'action ASP.NET MVC de se lier directement à l'objet désérialisé sans analyse manuelle.
Décoration de l'action du contrôleur ASP.NET MVC :
Décorez l'action du contrôleur avec un attribut personnalisé comme [JsonFilter] pour intercepter la requête JSON entrante et désérialiser l'objet correct dans l'action paramètre.
Code JsonFilterAttribute :
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; } } }
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!