今天的新發現:Ajax中使用到事件驗證的時候有個地方要注意哦
來源:互聯網
上載者:User
今天上班依然還是針對公司項目的ajax應用,因為這個技術在公司還沒有兩個同事在使用這個,技術也不是很成熟,不敢一下把所有的東西應用到項目中去,只能慢慢來,一個地方一個地方改,大部分東西我來動手,所以我要特別小心,不然後果是.....我也不知道,只知道是很嚴重的.NewEgg的人都看著做個網站吃飯的.^_^,今天發現一個問題,根據錯誤資訊:
回
發或回調參數無效。在配置中使用 <pages enableEventValidation="true"/> 或在頁面中使用 <%@ Page EnableEventValidation="true" %> 啟用了事件驗證。出於安全目的,此功能驗證回傳或回調事件的參數是否來源於最初呈現這些事件的伺服器控制項。如果資料有效並且是預期的,則使用 ClientScriptManager.RegisterForEventValidation 方法來註冊回傳或回調資料以進行驗證。
就知道是因為這個結點的設定有問題,設定為False後就好了,一查這個結點的作用,是對事件的驗證,我明白了,因為我們有的時候例如說一個按紐的點擊事件裡面判斷要是不符合某個條件就return;這樣就是對事件的驗證,要是有這樣的事件,那我們就需要在設定檔中修改設定檔:<pages enableEventValidation="false">
因為預設的是為pages enableEventValidation="true">的.這個結點我覺得微軟應該在我們建立一個AJAX項目的適合就設定為pages enableEventValidation="false">,免得我們在去設定不咯.當然這個東西有它本來得用處,我們在項目中要根據實際情況來設定哦,我也試過幾個地方,不曉得是因為VS的版本問題還是什麼原因有的時候是不會報錯的;然後還一個發現是 :以前項目中使用的 Page.RegisterStartupScript("successMsg", "alert()");做個方法在現在的ajax項目中是不能通過的,要 ScriptManager.RegisterStartupScript(Button1, this.GetType(), "successMsg", "alert('Success')
;", true);特別要注意的是左邊那個紅色的封號不能掉哦,不然就噴出一個錯誤來的哦.,今天有點笑不出來,想老婆,好想的.