2

JSON.NETシリアライザーの標準シリアライザーを交換することは問題ではありません。以下のコードは、ScottHanselmanのブログから直接抜粋したものです。

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.NETMVC4ベータ版のアップデートはありますか?

4

2 に答える 2

0

それはすでに WebAPI contrib の一部です。こちらをご覧ください。コードは実際には非常に簡単です。

于 2012-04-16T08:42:14.620 に答える
0

ASP.NET MVC 4 はまだベータ版であり、まだ 100% 動作しない機能がいくつかあります。前回、Newtonsoft.Json と JsonSerializer の統合を確認しましたが、完全ではありません。ASP.NET チームの何人かと話した結果、作業中であることは理解していますが、完了のタイムラインはありません。

于 2012-06-02T20:20:37.970 に答える