該錯誤的詳細提示資訊為:
回傳或回調參數無效。在配置中使用 <pages enableEventValidation="true"/> 或在頁面中使用 <%@ Page EnableEventValidation="true" %> 啟用了事件驗證。出於安全目的,此功能驗證回傳或回調事件的參數是否來源於最初呈現這些事件的伺服器控制項。目前為止遇到的出現情況有兩種:
一是Form嵌套,一個頁面只能有一個Form,仔細檢查代碼就可以解決。
二是在下拉式功能表中使用ajax,常見於省市聯動菜單,可能是由於在aspx頁面賦給了下拉式功能表初始Item值,在事件回傳時提示該錯誤,將下拉式功能表初始Item值刪除,在綁定事件中添加Item項。
回傳或回調參數無效。在配置中使用 <pages enableEventValidation="true"/> 或在頁面中使用 <%@ Page EnableEventValidation="true" %> 啟用了事件驗證。出於安全目的,此功能驗證回傳或回調事件的參數是否來源於最初呈現這些事件的伺服器控制項。
目前為止遇到的出現情況有兩種:
一是Form嵌套,一個頁面只能有一個Form,仔細檢查代碼就可以解決。
二是在下拉式功能表中使用javascript 來更改內容(如AJAX),常見於省 市 聯動菜單,在事件回傳時提示該錯誤。
該錯誤只有在 vs 2.0 上才會出現,如果把 enableEventValidation="true" 改成 enableEventValidation="false" 錯誤是不會出事了但是在代碼中確讀不到此項的值。
第一種情況的話不能在form 裡嵌form
第二種情況的解決辦法 就是把 控制改成 Html 的控制,控制項帶上 runat="server"
如:下面是我的一個解決辦法
一個省份和城市的鏈動效果
省
<asp:DropDownList ID="DropDownList3" runat="server" onchange="changelocation(DropDownList3.options[DropDownList3.selectedIndex].value)">
</asp:DropDownList>
市
<select name="DDLcity" id="DDLcity" runat="server">
<option value="0">=請選擇=</option>
</select>
然後在 後台 cs代碼裡用 Request.Form["DDLcity"]; 來接收城市的值。