2

为 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 调用失败。我回来的错误是:

此 DataController 不支持实体“JObject”的“插入”操作。

JObject 是从 JSON.NET 序列化程序返回的内容。它不尊重附加到实体的“__type”属性。

示例 JSON:

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

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

4

2 回答 2

0

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

于 2012-04-16T08:42:14.620 回答
0

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

于 2012-06-02T20:20:37.970 回答