asp.net中回發或回調參數無效。在配置中使用

  回發或回調參數無效。在配置中使用 <pages enableEventValidation="...
回發或回調參數無效。在配置中使用 <pages enableEventValidation="true"/>

可能出現的問題:
回發或回調參數無效。在配置中使用 <pages enableEventValidation="true"/> 或在頁面中使用 <%@ Page EnableEventValidation="true" %> 啓用了事件驗證。出於安全目的,此功能驗證回發或回調事件的參數是否來源於最初呈現這些事件的服務器控件。如果數據有效並且是預期的,則使用 ClientScriptManager.RegisterForEventValidation 方法來註冊回發或回調數據以進行驗證。
英文描述
id postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for valida

可行的解決方法有:

1、在頁面的<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 中添加 EnableEventValidation="false" 就可以了。(首先考慮的)

2、通過web.config
<system.web>
<pages enableEventValidation="false"/>

3、是Form嵌套,一個頁面只能有一個Form,仔細檢查代碼就可以解決。

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

4.1 在下拉菜單中使用ajax,常見於省市聯動菜單,可能是由於在aspx頁面賦給了下拉菜單初始Item值,在事件回發時提示該錯誤,將下拉菜單初始Item值刪除,在綁定事件中添加Item項。
4.2 原因是 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" 就可以了,responseEncoding="utf-8" 不用

5.Register For Event Validation
其原理就是讓asp.net記錄這個postback value.
RegisterForEventValidation必須在render時調用.

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章