2011-10-28 114 views
1

我在文本字段(AutoCompleteExtender)上使用Microsoft ASP.Net AJAX框架進行自動完成。序列化和反序列化過程中使用JSON JavaScriptSerializer使用JSON JavaScriptSerializer進行序列化或反序列化時出錯

錯誤:

我發現了一個錯誤。字符串的長度超過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> 

你覺得可能是問題的原因是什麼?

感謝

+0

我認爲這篇文章可以給你一些建議。 http://www.codeproject.com/Articles/272335/JSON-Serialization-and-Deserialization-in-ASP-NET – 2012-02-08 02:39:27

回答

1

OK,所以有點跟蹤後,我注意到一個Telerik的組合框是錯誤的來源。顯然,它是retreiving(使用JSON,因此是錯誤)140.000項非常少量。沒什麼大不了的,對吧?哼。

+0

那麼你是如何解決它的? –

+0

嗯,實際上Telerik Combobox不應該檢索140.000個項目。我修好了(它返回了一些打瞌睡的東西),並且它工作。如果您遇到同樣的問題,請嘗試停用網頁上的每個第三方組件,或查看下拉列表等內容。頁面上的某些內容正在使用JSON取回太多項目;找出它是什麼。 – thomasb

相關問題