Maison > développement back-end > C++ > Pourquoi mon application ASP.NET MVC sérialise-t-elle les énumériques en tant que nombres au lieu de chaînes, et comment puis-je le réparer?

Pourquoi mon application ASP.NET MVC sérialise-t-elle les énumériques en tant que nombres au lieu de chaînes, et comment puis-je le réparer?

DDD
Libérer: 2025-01-26 11:21:10
original
590 Les gens l'ont consulté

Why Does My ASP.NET MVC Application Serialize Enums as Numbers Instead of Strings, and How Can I Fix It?

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!

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