ASP.NET MVC Enum の JSON へのシリアル化のトラブルシューティング
ASP.NET MVC アプリケーションは、意図した文字列表現ではなく、JSON 応答内の数値として列挙型を予期せずシリアル化します。これは、たとえ一般的に使用されているとしても、デフォルトのシリアライザーが Newtonsoft.Json (Json.NET) ではないことを示しています。考えられる原因と解決策を調べてみましょう:
1.構成チェック:
web.config
ファイルのコンテンツ ハンドラーはカスタム JSON シリアライザーを定義する場合があります。ただし、Json.NET が明示的に構成されていない場合、これは起こりそうにありません。
2.デフォルトのシリアライザー識別:
重要なことは、MVC 5 より前のバージョンの ASP.NET MVC は、デフォルトでは Json.NET を使用しません。彼らはJavaScriptSerializer
を利用します。 Json.NET の文字列列挙型シリアル化を利用するには、手動で統合する必要があります。 このプロセスの詳細を説明するリソースには次のものが含まれます:
3.モデル バインディングとカスタム ValueProviderFactory:
Json.NET が列挙型を文字列として正しくシリアル化するには、カスタム ValueProviderFactory
が必要になる場合があります。このカスタム ファクトリにより、モデル バインド中に JSON データをモデル プロパティにバインドできるようになります。 実装の詳細については、次のリソースを参照してください:
これらの点に対処することで、ASP.NET MVC アプリケーションが JSON 応答内の文字列として列挙型をシリアル化し、期待される動作に合わせることを保証できます。
以上がなぜ私のASP.NET MVC enumsが文字列の代わりに数字としてシリアル化するのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。