我有以下代码
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但有时我需要发送一些大数据..我该怎么办?
答案 0 :(得分:2)
使用web.config
中的以下代码。它会解决你的问题。
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="900000" />
</webServices>
</scripting>
</system.web.extensions>
答案 1 :(得分:0)
当我遇到类似的大型json数据问题时,在Web配置中增加maxJsonLength对我有用。