11

Json.NET ライブラリを ASP.NET MVC アプリの既定のシリアライザーとして置き換える方法に関するリソースはたくさんありますが、私の人生では、それデフォルトのデシリアライザー

これを少し説明するために、テンプレート コードをいくつか示します。

                              // how to use Json.NET when deserializing
                              // incoming arguments?
                                    V
public ActionResult SomeAction ( Foo foo ) {

    // this piece of code has lots of resources
    // on how to override the default Javascript serializer
    return Json(new Bar());

}

たとえば、jQuery AJAX 呼び出しから、コントローラー アクションで受信パラメーターを逆シリアル化するときに Json.NET を使用するようにアプリケーションに指示するにはどうすればよいですか?

$.ajax({
    type : 'POST',
    data : { foo : 'bar' }
});

Rick Strahl のこのリソースをMediaTypeFormatters調整してコードに適応させようとしましたが、それもうまくいきませんでした。私は WebAPI 環境にいないことに注意してください --- しかし、通常の環境で機能する 1 つのソリューションが(最小限の調整で) .ControllerApiController

4

1 に答える 1

2

カスタム ValueProviderFactory を実装し、標準の JsonValueProviderFactory を削除する必要があります。

ここにいくつかのサンプルコードがあります: http://json.codeplex.com/discussions/347099ただし、コメントを読んでも、辞書が適切に処理されるかどうかは 100% わかりません。

于 2012-09-18T06:44:39.600 に答える