如何将 JSON.NET 与 ASP.NET MVC 4 Beta一起使用



标准序列化程序换成 JSON.NET 序列化程序不是问题。下面的代码直接取自Scott Hanselman的博客

http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx

JsonSerializerSettings serializerSettings = new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore };
serializerSettings.Converters.Add(new IsoDateTimeConverter());
GlobalConfiguration.Configuration.Formatters[0] = new JsonNetFormatter(serializerSettings);

但是,这样做后我无法保存任何内容,ajax 调用失败。我得到的错误是:

此数据控制器不支持实体"JObject"的"插入"操作。

JObject 是从 JSON.NET 序列化程序返回的内容。它不遵循附加到实体的"__type"属性。

示例 JSON:

[{"Id":"0","Operation":1,"Entity":{"__type":"Product:#Catalog.Models","Sku":"adsfadsf"}}]

除了浸入 JSON.NET 源代码来解决此问题之外,我还能做些什么吗?ASP.NET MVC 4 Beta 是否有更新可以解决此问题?

这已经是 WebAPI 贡献的一部分。看看这里。代码实际上非常简单。

ASP.NET MVC 4仍处于测试阶段,有几个功能还不能100%工作。上次我检查Newtonsoft.Json和JsonSerializer的集成不完整。在与 ASP.NET 团队的一些人交谈后,我的理解是它正在开发中,但没有完成的时间表。

最新更新