【发布时间】:2013-02-24 14:28:44
【问题描述】:
我在给您写信时出现网站错误:使用 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 个
最好的问候, 彼得
注意:不幸的是,我进行了很多讨论(这里),但没有成功,所以对于任何重复的主题,我深表歉意。
【问题讨论】:
标签: c# json asp.net-mvc-4 jsonserializer large-data