Dépannage de la sérialisation JSON par défaut des énumérations d'ASP.NET MVC
Une application ASP.NET MVC sérialise de manière inattendue les énumérations sous forme de nombres dans les réponses JSON, même si JSON.NET est supposé être le sérialiseur par défaut. Cet article diagnostique la cause profonde et propose des solutions.
Comprendre le sérialiseur par défaut
Contrairement à la croyance populaire, le sérialiseur JSON par défaut d'ASP.NET MVC 4 est JavaScriptSerializer
, et non JSON.NET. Cela explique pourquoi la représentation sous forme de chaîne attendue des énumérations ne se produit pas. Le problème n'est pas un paramètre web.config
manquant.
Implémentation de JSON.NET comme sérialiseur par défaut
Pour exploiter les capacités de JSON.NET et sérialiser les énumérations sous forme de chaînes, une configuration personnalisée est essentielle. Cela implique de créer une classe JsonNetResult
personnalisée et de la configurer comme décrit dans les solutions référencées.
Assurer une liaison de modèle correcte avec JSON.NET
Pour une liaison de modèle transparente lors de l'utilisation de JSON.NET, un ValueProviderFactory
personnalisé est requis. Cette fabrique personnalisée doit être enregistrée, en remplaçant la valeur par défaut JsonValueProviderFactory
, comme indiqué dans les exemples de code fournis. Les ressources référencées fournissent des instructions détaillées pour cette implémentation.
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!