Asp.net mvc 当计数超过~9000时,jqgrid不显示任何结果

Asp.net mvc 当计数超过~9000时,jqgrid不显示任何结果,asp.net-mvc,jqgrid,mvcjqgrid,Asp.net Mvc,Jqgrid,Mvcjqgrid,我正在使用带有MVC4的jqgrid版本4.1.2,使用loadonce选项。当搜索结果的计数超过大约9000条记录时,网格上不会显示任何数据 可能是什么问题 以下是JS代码:更新1 使用loadonce选项从服务器返回所有数据时,是否对记录数或浏览器依赖性有任何限制 任何帮助都将不胜感激。谢谢。通过在Fiddler中跟踪请求,我终于找到了上述问题的解决方案,在响应标题中显示了以下错误: 使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过了maxJ

我正在使用带有MVC4的jqgrid版本4.1.2,使用loadonce选项。当搜索结果的计数超过大约9000条记录时,网格上不会显示任何数据

可能是什么问题

以下是JS代码:更新1

使用loadonce选项从服务器返回所有数据时,是否对记录数或浏览器依赖性有任何限制


任何帮助都将不胜感激。谢谢。

通过在Fiddler中跟踪请求,我终于找到了上述问题的解决方案,在响应标题中显示了以下错误:

使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过了maxJsonLength属性上设置的值

在搜索上述错误时,我找到了一个解决方法:

基本上,问题不在于jqGrid,而在于JavaScriptSerializer的MaxJsonLength属性,该属性默认为2097152个字符~4MB的数据。资料来源:

为了使其正常工作,我在操作方法中替换了以下代码:

return Json(jsonData, JsonRequestBehavior.AllowGet);
与:


谢谢。

我想您在本地搜索数据时遇到了问题。不是吗?问题可能出现在您使用的colModle中,也可能出现在您实现的任何回调中。您没有发布任何可能包含问题根源的代码。没有,本地搜索和重新加载工作正常。但一旦数据量超过上述数字,网格就不会填充任何数据,如果少于9k条记录(比如8k条记录),则最后的搜索结果仍保留在网格中。如果通过更改参数并重新加载来搜索较少的记录,则一切正常。我已尝试将网格中的列数减少到1,以检查是否存在与数据量相关的问题,但没有帮助。我还尝试删除loadComplete,因为它会影响性能,但结果仍然是一样的。从controller返回的json数据显示了正确的记录数和所需的格式。@Oleg:我已经发布了完整的jqgrid代码供您参考。希望这会有所帮助。谢谢。首先,我严格建议您使用本地分页:将rowNum:100000替换为较小的值,如rowNum:25。花时间填充数千行不可见的行是没有意义的。JavaScriptSerializer是最古老的JSON序列化程序。在此之后,微软提出了多个类似DataContractSerializer的方案。目前Microsoft建议使用see和。即使使用旧的MVC,也可以将默认的JSON序列化更改为另一个。参见和或示例。
var jsonData = new
            {
                page = page,
                rows = data
            };

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