【问题标题】:Error during serialization or deserialization using the JSON JavaScriptSerializer使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错
【发布时间】:2011-12-17 05:27:31
【问题描述】:

我将 Microsoft ASP.Net AJAX 框架用于文本字段上的自动完成功能 (AutoCompleteExtender)。

我收到一个错误:

使用 JSON 进行序列化或反序列化时出错 JavaScript 序列化器。字符串长度超过设置的值 在 maxJsonLength 属性上。

关于这个错误的几个奇怪的事情:

  • 即使我的解决方案中的每个 Web 服务都不返回任何内容(我将它们更改为返回空数组),也会引发错误;
  • 在web.config中,jsonSerialization maxJsonLength设置为最大值2147483644,这个页面的webservices应该返回几个结果;
  • 它说错误的根源在一个 javascript 函数中,但该函数从未运行过,因此实际上从未调用过 web 服务:
  • 当我从页面中删除每个 AutoCompleteExtender 以及对任何 web 服务的每个调用时,它开始在 aspx 内的“end if”上向我抛出错误。当我删除 aspx 中的每个“If”时,它会崩溃而不告诉我为什么。好玩!

<script type="text/javascript">
    var tbEntrIdFonctionItemSelected = function(sender, e) {
       $get('<%=Me.FormViewContact.FindControl("hdn_AgenceIdFonctionSearch").ClientID%>').value = e.get_value(); // source of the error
    }
</script>

您认为问题的原因是什么?

谢谢

【问题讨论】:

标签: asp.net json asp.net-ajax


【解决方案1】:

好的,经过一番跟踪,我注意到 Telerik Combobox 是错误的来源。显然,它正在检索(使用 JSON,因此出现错误)非常少量的 140.000 个项目。没什么大不了的,对吧?哼。

【讨论】:

  • 好吧,实际上 Telerik Combobox 不应该检索 140.000 个项目。我解决了这个问题(它返回了几个打瞌睡的物品),它奏效了。如果您有同样的问题,请尝试停用页面上的每个第三方组件,或检查下拉菜单的长度等。您页面上的某些内容正在使用 JSON 检索太多项目;找出它是什么。
猜你喜欢
  • 2021-09-02
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-07
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多