我收到以下错误:
"使用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" />
答案 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);