asp.net Page.EnableEventValidation 屬性驗證伺服器控制項的回傳和回調事件出現的錯誤

來源:互聯網
上載者:User

本以為頁面很簡單不會出現問題,但運行時出現了如下錯誤:

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" 就可以。如有其他建議,請指出。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.