回傳或回調參數無效。在配置中使用
或在頁面中使用 啟用了事件驗證。出於安全目的,此功能驗證回傳或回調事件的參數是否來源於最初呈現這些事件的伺服器控制項。如果資料有效並且是預期的,則使用 ClientScriptManager.RegisterForEventValidation 方法來註冊回傳或回調資料以進行驗證。
這兩天在開發的時候遇到一個這樣的問題,
回傳或回調參數無效。在配置中使用 <pages enableEventValidation="true"/> 或在頁面中使用 <%@ Page EnableEventValidation="true" %> 啟用了事件驗證。出於安全目的,此功能驗證回傳或回調事件的參數是否來源於最初呈現這些事件的伺服器控制項。如果資料有效並且是預期的,則使用 ClientScriptManager.RegisterForEventValidation 方法來註冊回傳或回調資料以進行驗證。
在網上找了兩天資料都沒有結果
在 劍氣瀟瀟 的文章中看到原因是:
下邊引用自:劍氣瀟瀟 的文章http://www.cnblogs.com/asp600/archive/2006/11/04/550216.aspx
目前為止遇到的出現情況有兩種:
一是Form嵌套,一個頁面只能有一個Form,仔細檢查代碼就可以解決。
二是在下拉式功能表中使用ajax,常見於省市聯動菜單,可能是由於在aspx頁面賦給了下拉式功能表初始Item值,在事件回傳時提示該錯誤,將下拉式功能表初始Item值刪除,在綁定事件中添加Item項。
後來我自己發現,問題還不是出在那兒.
原因是 DropDownList 控制項的ListItem 的Value 屬性 包含漢字.只要將Value 改為英文或數位就行了.
網上還有一種解決辦法:把 EnableEventValidation 屬性設定為false;但是這樣只是沒有警告框而已.資料仍然無法傳遞給伺服器,導致SelectedIndex 值一直為零.
最好在web.config中添加如下語句:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN"/>
結果搞定,現在貼到這裡希望對大家能夠有所協助.
看來ajax.net對中文支援有限啊,還是因為要在Web.Config設定一下編碼??????