2017-01-22 12 views
0

Я получаю ниже ошибки:Могу ли я преодолеть встроенный предел длины JSON во время сериализации веб-данныхGridView?

"Error during serialization or deserialization using the JSON JavaScriptSerializer. The length of the string exceeds the value set on the maxJsonLength property.Parameter name: input"

У меня есть стандартное приложение ASP.NET, а не MVC. Мое приложение создает пустую строку datagrid с 25 номерами столбцов (и 1000 строк) и записи пользователя copy/paste1000 в сетку (фактически, Infragistics Web Datagrid - я предполагаю, что разница не значительна). Ошибка, то происходит при щелчке по кнопке мыши:

Exception information:
at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit) at System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input) at Infragistics.Web.UI.Framework.RunBot.HandleOnInit(HttpContext context) at Infragistics.Web.UI.Framework.Data.FlatDataBoundControl.OnInit(EventArgs e) at Infragistics.Web.UI.GridControls.WebDataGrid.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Я попытался установить <jsonSerialization maxJsonLength="2147483647"></jsonSerialization> в файле web.config, но это не сделало различие, которое не совсем удивительно, учитывая, что я не используя веб-службу. Я также попытался следующие параметры web.config, все безрезультатно:

 <add key="aspnet:MaxHttpCollectionKeys" value="2147483647"/> 
     <add key="aspnet:MaxJsonDeserializerMembers" value="2147483647"/> 
     <add key="aspnet:UpdatePanelMaxScriptLength" value="2147483647" /> 

ответ

0

Пожалуйста, попробуйте это в web.config

<system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="50000000"/> </webServices> </scripting> </system.web.extensions> 

В коде позади

JavaScriptSerializer serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = Int32.MaxValue; 
YourObject obj = serializer.Deserialize<yourObject>(yourJsonString); 
+0

Я уже попробовал это, но он не работает. Потому что я не использую какой-либо webService.I имеет просто простую сетку данных при попытке нажать кнопку отправки после копирования/вставки 1000 записей, которые я получаю выше ошибки. –

+0

Я думаю, что вы не получили мою проблему ... я не использую ни одну строку json ... проблема возникает в inbuild сериализации или десериализации данных сетки в asp.net.it даже не собирается кодировать позади. –

+0

Есть ли способ каким-то образом переопределить внутренний процесс сериализации/десериализации GridView (или эквивалент), чтобы он мог работать с произвольно большими данными? –

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

  • Нет связанных вопросов^_^