ASP.NET MVC 枚举的默认 JSON 序列化故障排除
ASP.NET MVC 应用程序意外地将枚举序列化为 JSON 响应中的数字,即使 JSON.NET 被假定为默认序列化程序。本文诊断根本原因并提供解决方案。
了解默认序列化器
与普遍看法相反,ASP.NET MVC 4 的默认 JSON 序列化器是 JavaScriptSerializer
,而不是 JSON.NET。 这解释了为什么枚举的预期字符串表示没有出现。 问题不在于缺少 web.config
设置。
实现 JSON.NET 作为默认序列化器
要利用 JSON.NET 的功能并将枚举序列化为字符串,自定义配置至关重要。 这涉及创建自定义 JsonNetResult
类并按照引用的解决方案中的描述对其进行配置。
确保与 JSON.NET 正确的模型绑定
为了使用 JSON.NET 时的无缝模型绑定,需要自定义 ValueProviderFactory
。需要注册此自定义工厂,替换默认的 JsonValueProviderFactory
,如提供的代码示例中所示。 引用的资源提供了此实现的详细说明。
以上是为什么我的 ASP.NET MVC 应用程序将枚举序列化为数字而不是字符串,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!