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

时间:2012-04-16 06:36:23

标签: json.net asp.net-mvc-4 asp.net-web-api upshot

换掉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'的操作'Insert'。

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

示例JSON:

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

有什么我可以做的,只需要深入了解JSON.NET源代码来解决这个问题吗? ASP.NET MVC 4 Beta是否有更新可以修复此问题?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

ASP.NET MVC 4仍然处于测试阶段,并且有一些功能尚未100%完成。我最后一次检查Newtonsoft.Json和JsonSerializer的集成是不完整的。在与ASP.NET团队的一些人交谈之后,我的理解是它正在进行中,但没有完成的时间表。