![](/img/trans.png)
[英]The length of the string exceeds the value set on the maxJsonLength property
[英]How to set the maxJsonLength property?
我有一个 JsonResult 返回 29833 条记录,一个 CustomerID 和一个 CustomerName。 我正在尝试将其加载到 AutoComplete 中,但我不断收到此错误。
使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。 字符串的长度超过了 maxJsonLength 属性上设置的值。
我对这个主题进行了一些挖掘,并在这里找到了这个链接
所以我读了一遍,提供的答案对我不起作用,然后下一个建议看起来很有希望,直到我更多地查看代码并得出结论它对我不起作用,因为我使用 JQuery Ajax获取 JsonResult。 现在我不知道该怎么做,这是我正在使用的 JQuery
function LoadCustomers() {
$.ajax({
type: "GET",
url: "/Test/GetAllCustomers",
dataType: "json",
contentType: "application/json; charset=utf-8",
success: function (data, textStatus, jqXHR) {
ShowCustomers(data);
}
});
}
function ShowCustomers(custdata) {
$("#acCustomers").kendoAutoComplete({
dataSource: custdata,
filter: "startswith",
placeholder: "Select Customer...",
dataTextField: "CustomerName"
});
}
我什至尝试只填充网格但无济于事。 有什么想法可以让我按照我的方式正常工作吗? 我认为作为最后的手段,我必须更改我的存储过程并在每个 keyup 事件中传递字符,我不知道这是否是一个好主意,或者我不知道。 无论哪种方式,我肯定可以使用一些帮助或指导
编辑基于提供的链接这不是重复的原因是因为我不在服务器端工作,我在客户端工作。
编辑 2
这是我的 JsonResult
public JsonResult GetAllCustomers(string name)
{
PGDAL dal = new PGDAL();
List<Customer> lst = dal.GetAllCustomers();
return Json(lst, JsonRequestBehavior.AllowGet);
}
我从一些经验中学到的一件事是,ASP.net MVC 似乎忽略了您放置在 Web.config 文件中的任何 JSON Max 值。 我通常只执行以下操作:
var JsonSerializer = new JavaScriptSerializer();
JsonSerializer.MaxJsonLength = Int32.MaxValue;
正如 Paul Swetz 链接的那样,您可能会在管理 MAX 值方面找到更多资源,但我很确定这将是最广泛接受的答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.