Dépannage ASP.NET MVC Enum Serialization à JSON
Une application ASP.NET MVC sérialise de façon inattendue Enum sous forme de nombres dans les réponses JSON, au lieu des représentations de chaîne souhaitées. Cela indique que le sérialiseur par défaut n'est pas Newtonsoft.json (json.net), même s'il est couramment utilisé. Examinons les causes et les solutions potentielles:
1. Vérification de la configuration:
Les gestionnaires de contenu du fichier web.config
peuvent définir un sérialiseur JSON personnalisé. Cependant, cela est peu probable si JSON.net n'est pas explicitement configuré.
2. Identification par défaut du sérialiseur:
Surtout, les versions ASP.NET MVC avant MVC 5 n'utilisent pas JSON.NET par défaut; Ils utilisent JavaScriptSerializer
. Pour tirer parti de la sérialisation en énumération de JSON.net, une intégration manuelle est requise. Les ressources détaillant ce processus comprennent:
3. Liaison du modèle et valeur personnalisée ValueProviderFactory:
pour que JSON.net sérialise correctement les énumérements en tant que chaînes, une personnalité ValueProviderFactory
pourrait être nécessaire. Cette usine personnalisée permet à la liaison des données JSON de modéliser les propriétés pendant la liaison du modèle. Reportez-vous à ces ressources pour les détails de mise en œuvre:
En abordant ces points, vous pouvez vous assurer que votre application ASP.NET MVC sérialise les énumériques en tant que chaînes dans les réponses JSON, s'alignant avec le comportement attendu.
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!