我在给您写信时出现网站错误:使用 JSON JavaScriptSerializer 进行序列化或反序列化期间出错。字符串的长度超过了 maxJsonLength 属性上设置的值。
使用的技术:C#,。NET FW 4.5、ASP.NET MVC4 和 Lint to SQL、Kendo UI(显示结果的网格)。
我想返回(就 Json 而言)一大组数据 - 实际上我有 50,000 条记录(不会出现超过 250,000 条记录)
我尝试放大 maxJsonLength 并在 web.config 中启用压缩 - 出现同样的错误:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="10485760"/>
</webServices>
<scriptResourceHandler enableCompression="true" enableCaching="true"/>
</scripting>
</system.web.extensions>
接下来我尝试在 C# 类中重写返回方法 - 相同的错误:a)默认
public JsonResult GetResult()
{
// execute query for get result
var myBigData = from ......
select new
{
.......
};
// return result
return this.Json(myBigData, JsonRequestBehavior.AllowGet);
}
b)重写(仍然错误)
public JsonResult GetResult()
{
// execute query for get result
var myBigData = from ......
select new
{
.......
};
// return result
var jsonResult = Json(myBigData, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;
}
为了消除错误,我尝试了少量数据 - 一切正常:测试正确:6999 个项目中的 1 - 10 个
最好的问候,彼得
注意:不幸的是,我经历了很多讨论(这里),但没有成功,所以对于任何重复的话题,我深表歉意。