繁体   English   中英

如何设置 maxJsonLength 属性?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM