由于大型JSON

时间:2016-10-09 16:55:13

标签: c# jquery json ajax asp.net-mvc-4

我有以下代码

ajax call

$.ajax({
type: "POST",
dataType: "json",
async: false,
contentType: "application/json; charset=utf-8",
url: "Account/SomeFunc",
data: JSON.stringify(dataToSend),

success: function (res) {
//some code

},

error: function (res, textStatus, errorThrown) {
//some code

}
});

并在服务器端

public ActionResult SomeFunc()
    {
        //some code
        VeryBigObject result = getResult();

        if (result == null)
            return null;

        var jsonResult = Json(result, JsonRequestBehavior.AllowGet);
        jsonResult.MaxJsonLength = int.MaxValue;

        return jsonResult;
    }

结果变量可以很小但有时它是一个非常大的对象。当对象足够小时,代码可以工作,并且ajax成功代码被激活,但是当结果足够大时,代码会因500内部服务器错误而失败。 我不能把MaxJsonLength放得更大,因为它是一个int但有时我需要发送一些大数据..我该怎么办?

2 个答案:

答案 0 :(得分:2)

使用web.config中的以下代码。它会解决你的问题。

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

答案 1 :(得分:0)

当我遇到类似的大型json数据问题时,在Web配置中增加maxJsonLength对我有用。