在web dataGridView的序列化过程中,我可以克服内置的JSON长度限制吗?

时间:2017-01-22 05:20:55

标签: json gridview serialization deserialization

我收到以下错误:

  

"使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过maxJsonLength属性上设置的值。参数名称:input"

我有一个标准的ASP.NET应用程序而不是MVC。我的应用程序创建一个空白datagrid,其中包含25列(和1000行)和用户复制/粘贴1000条记录到网格中(实际上是Infragistics Web Datagrid - 我假设差异不大)。然后在点击按钮单击期间发生错误:

  

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

我已尝试在 <jsonSerialization maxJsonLength="2147483647"></jsonSerialization> 文件中设置web.config,但这并没有产生任何影响,鉴于我&#,这并不令人惊讶39;我没有使用网络服务。我还尝试了以下web.config设置,一切都没有效果:

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

1 个答案:

答案 0 :(得分: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);