UpdatePanel似乎很难与AsynPostBack这样庞大的数据斗争。 jSonSerializer maxLength没有帮助

时间:2008-11-11 08:29:59

标签: asp.net json updatepanel componentart jsonserializer

我有一个ASP.NET 3.5应用程序,并尝试更新具有嵌套自定义控件的更新面板。在那个自定义控件中是一个ComponentArt Gird,它在这个更新中被几乎13MB的数据填满(是的,我可以解决那个......)。

我在更新面板上有一个隐藏按钮,当我需要updatePanel和网格时,我在客户端由JS触发。

当我在使用Updatepanelxyz.Update()的asyncPostback期间调用Update方法时,我会在稍后的过程中得到一个asyncPostBackError,说JSonSerializer无法处理这么多数据。我应该增加指定值。

事实上。了解。但是当我在web.config中更改此值时,它只能在大约8MB左右工作,但不会更多。在这种情况下,JSonSerializer是否有限制。我已经将值设置为Int32的最大值,这是默认值的1000倍,已经足够4MB的序列化数据。

有什么建议吗?有什么方法可以强制序列化器实现这一目标吗?有没有办法使用另一个Serializer?

干杯, 史蒂夫

3 个答案:

答案 0 :(得分:1)

老兄,1百万的数据太多了 - 为什么你需要13?

我真的认为你需要重构你的ui。我不在乎你的网络有多快,这只是疯狂的东西!

答案 1 :(得分:0)

我绝对同意UI和DataAccess层需要一个重构器,但是从短期来看,我只是在寻找一个简单快速的解决方案来帮助我的客户端,直到软件的下一次更新发布。

答案 2 :(得分:0)

最好的办法是更改web.config部分中的ScriptingJsonSerializationSection.MaxJsonLength属性。

默认为102400个字符,而JsonSerializer类的限制为2097152个字符。

见:

JsonSerializer class maxJsonLength property

JsonSerialization configuration section max length property

正如我上面提到的,更改配置部分属性是不幸的唯一方法。