9

KnockoutJS のマッピング プラグインを使用して、モデルを Knockout オブジェクトに変換しています。しかし、大きな json オブジェクトをサーバーに送り返す際に問題が発生しています。私の ajax 呼び出しは次のようになります。

$.ajax({
    url: "/home/DoStuff",
    type: "POST",
    data: JSON.stringify({ deal: ko.toJS(myObjectViewModel) }),
    contentType: "application/json",
    dataType: "json",
    success: function (result) {
        console.log(result);
    },
    error: function (xhr, status, message) {
        console.log(xhr);
    }
});

このスクリプトを実行DoStuffしても、コントローラーのアクションにヒットすることはありません。Firebug で検査すると、POST が回転し続けます。Firebug の [ネット] タブでは、投稿本文が 159.9 KB、送信済み合計が 165.1 KB (ヘッダーを含む) と表示されます。送信された場合、コードのブレークポイントにヒットしないのはなぜですか?

しかし、代わりに のプロパティだけを送信するとmyObjectViewModel、問題なく投稿され、すべてが成功します。そのため、問題は投稿されるデータのサイズにあると思います。そこで、maxJsonLength を増やしてみました。

<system.web.extensions>
    <scripting>
        <webServices>
            <jsonSerialization maxJsonLength="2147483644"></jsonSerialization>
        </webServices>
    </scripting>
</system.web.extensions>

これは役に立ちませんでした。

他にすべきことはありますか?

4

4 に答える 4

4

web.config を以下に変更して、ほぼ 1,50,00,000 文字を含む大きな JSON データをコントローラーに渡しています。

<appSettings>
    <add key="aspnet:MaxJsonDeserializerMembers" value="2147483644" />
</appSettings>

これは私にとって非常にうまく機能しています.....

于 2016-07-11T07:31:10.417 に答える
1

クライアント側からサーバーコントローラーアクションに大きなモデルオブジェクトデータ(JSON)を投稿するという同じ問題がありました。以下の設定をconfigに追加するとうまくいきました。ありがとう。

<appSettings>
    <add key="aspnet:MaxJsonDeserializerMembers" value="150000" />
</appSettings>
于 2015-06-05T21:53:03.877 に答える