Heim >Backend-Entwicklung >C++ >Warum serialisiert meine ASP.NET MVC-Anwendung Aufzählungen als Zahlen statt als Zeichenfolgen und wie kann ich das Problem beheben?

Warum serialisiert meine ASP.NET MVC-Anwendung Aufzählungen als Zahlen statt als Zeichenfolgen und wie kann ich das Problem beheben?

DDD
DDDOriginal
2025-01-26 11:21:10590Durchsuche

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

Fehlerbehebung bei der Standard -JSON -Serialisierung von ASP.NET MVC

Eine ASP.NET -MVC -Anwendung serialisiert die Enums unerwartet als Zahlen in JSON -Antworten, obwohl JSON.NET als Standard -Serializer angenommen wird. Dieser Artikel diagnostiziert die Grundursache und bietet Lösungen.

Verständnis des Standardserializers

Im Gegensatz zum gemeinsamen Glauben ist der Standard -JSON -Serializer von ASP.NET MVC 4 JavaScriptSerializer, nicht json.net. Dies erklärt, warum die erwartete String -Darstellung von Enums nicht auftritt. Das Problem ist keine fehlende web.config Einstellung.

Implementieren von json.net als Standard -Serializer

Um die Funktionen von JSON.NET zu nutzen und Enums als Zeichenfolgen zu serialisieren, ist eine benutzerdefinierte Konfiguration unerlässlich. Dies beinhaltet das Erstellen einer benutzerdefinierten JsonNetResult -Klasse und das Konfigurieren dieser in den Referenzlösungen beschrieben.

Sicherstellen, dass die korrekte Modellbindung mit json.net

sicherstellt

Für die nahtlose Modellbindung bei Verwendung von JSON.NET ist ein benutzerdefinierter ValueProviderFactory erforderlich. Diese benutzerdefinierte Fabrik muss registriert werden, wodurch das Standard JsonValueProviderFactory ersetzt wird, wie in den angegebenen Code -Beispielen gezeigt. Die referenzierten Ressourcen bieten detaillierte Anweisungen für diese Implementierung.

Das obige ist der detaillierte Inhalt vonWarum serialisiert meine ASP.NET MVC-Anwendung Aufzählungen als Zahlen statt als Zeichenfolgen und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn