程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net Page.EnableEventValidation 屬性驗證服務器控件的回發和回調事件出現的錯誤

asp.net Page.EnableEventValidation 屬性驗證服務器控件的回發和回調事件出現的錯誤

編輯:ASP.NET基礎
本以為頁面很簡單不會出現問題,但運行時出現了如下錯誤:

Page.EnableEventValidation 屬性 參看了一下MSDN,獲取或設置一個值,該值指示頁面驗證回發事件,還是驗證回調事件。.NET Framework出於安全考慮需要為服務器端控件的回發和回調事件進行注冊,此事件驗證機制可消除未經授權的回發請求和回調帶來的風險。通過此模型,控件可在呈現期間注冊其事件,然後在回發或回調期間驗證這些事件。默認情況下,ASP.NET 中的所有事件驅動控件均使用此功能。

第一反應,既然啟用了事件驗證,那就在頁面中禁用驗證,將<%@ Page EnableEventValidation="false" %>,問題解決。但是為什麼會出現這種問題呢,google一下。

如果頁面含有 DropDownList 或 ListBox這樣的控件,可能以下原因造成:

在下拉菜單中使用ajax,常見於省市聯動菜單,可能是由於在aspx頁面賦給了下拉菜單初始Item值,在事件回發時提示該錯誤,將下拉菜單初始Item值刪除,在綁定事件中添加Item項。

原因是 DropDownList 控件的ListItem 的Value 屬性 包含漢字.只要將Value 改為英文或數字的就行了.最好在web.config中添加如下語句:
復制代碼 代碼如下:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" uiCulture="zh-CN"/>

因為 POSTBACK 如果不采用 UTF-8 編碼, JAVASCRIPT 會認為有問題。 只改 requestEncoding="utf-8" 就可以。如有其他建議,請指出。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved