2016-09-20 5 views
0

У меня есть JsonResult, возвращающий 29833 записей, CustomerID и CustomerName. Я пытаюсь загрузить это в автозаполнение, но я продолжаю получать эту ошибку.Как установить свойство maxJsonLength?

Ошибка при сериализации или десериализации с использованием JSON JavaScriptSerializer. Длина строки превышает значение, заданное для свойства maxJsonLength.

Я сделал некоторые копаться на эту тему и наткнулся на эту ссылку here
Так что я прочитал над ним и ответ при условии, не работает для меня, а затем следующее предложение выглядело многообещающим, пока я не смотрел больше на код и пришел к выводу, что это не сработает для меня, потому что я использую 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, я не знаю, было бы это хорошей идеей или, может быть, я не знаю. В любом случае я уверен, что мог бы использовать некоторую помощь или направление

EDIT Причина, по которой это не дубликат на основе поставляемой линии связи, потому что я не работаю на стороне сервера, я работаю стороне клиента.

EDIT 2

Вот мой JsonResult

public JsonResult GetAllCustomers(string name) 
    { 
     PGDAL dal = new PGDAL(); 
     List<Customer> lst = dal.GetAllCustomers();    

     return Json(lst, JsonRequestBehavior.AllowGet); 
    } 
+1

Возможный дубликат [JavaScriptSerializer.MaxJsonLength превышен. Какова наилучшая практика для этого?] (Http://stackoverflow.com/questions/1045984/javascriptserializer-maxjsonlength-exceeded-whats-the-best-practice-for-handli) –

+0

Ответ, на который вы ссылались (и связанные с ним ответы) справочный серверный код. Ваш вопрос показывает только ваш клиентский код. Вы внесли изменения на стороне сервера, указанные в вашей ссылке? – Jasen

+0

@ Ясен, ты меня спрашиваешь или Пол Сетц? – Chris

ответ

1

Одна вещь, которую я узнал из какого-то опыта, что кажется, ASP.net MVC игнорирует любое значение JSON Max вы размещаете в Сети .config файл. Я обычно просто сделать следующее:

var JsonSerializer = new JavaScriptSerializer(); 
JsonSerializer.MaxJsonLength = Int32.MaxValue; 

Как Павел Swetz соединился сверху, вы можете найти еще несколько ресурсов в управлении значением MAX, но я уверен, что это будет наиболее широко признанным ответ.

+0

, где вы его размещаете? в JsonResult? – Chris

+0

Вы создаете свой объект с помощью JsonSerializer, а затем передаете это JsonResult, например return (deSerializedObject, JsonRequestBehavior.AllowGet); Просто убедитесь, что передаваемые данные очищены от любых личных или личных данных. Json и AllowGet открывает целую другую червь червей. –

+0

У вас есть пример? Я не знаком с тем, как вы говорите о – Chris

Смежные вопросы