回發或回調參數無效。在配置中使用 <pages enableEventValidation="true"/> 或在頁面中使用 <%@ Page EnableEventValidation="true" %> 啓用了事件驗證。出於安全目的,此功能驗證回發或回 調事件的參數是否來源於最初呈現這些事件的服務器控件。若是數據有效而且是預期的,則使用 ClientScriptManager.RegisterForEventValidation 方法來註冊回發或回調數據以進行驗證。 說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以瞭解有關該錯誤以及代碼中致使錯誤的出處的詳細信息。程序員
錯誤:web
回發或回調參數無效。在配置中使用 <pages enableEventValidation="true"/> 或在頁面中使用 <%@ Page EnableEventValidation="true" %> 啓用了事件驗證。出於安全目的,此功能驗證回發或回調事件的參數是否來源於最初呈現這些事件的服務器控件。若是數據有效而且是預期的,則使用 ClientScriptManager.RegisterForEventValidation 方法來註冊回發或回調數據以進行驗證。
異 常詳細信息: System.ArgumentException: 回發或回調參數無效。在配置中使用 < pages enableEventValidation="true"/> 或在頁面中使用 <% @ Page EnableEventValidation="true" %> 啓用了事件驗證。出於安全目的,此功能驗證回發或回調事件的參數 是否來源於最初呈現這些事件的服務器控件。若是數據有效而且是預期的,則使用 ClientScriptManager.RegisterForEventValidation 方法來註冊回發或回調數據以進行驗證。
發生條件: 1。畫面有隱藏控件。 2。屢次的GRID綁定。
發生緣由: .NET基於頁面中的輸出元素會在最終頁面中生成一個__EVENTVALIDATION隱藏字段。作了一個簡單的測試。頁面中建立一個<asp: button id="btnSubmit" runat="server" text="Submit" tooltip="Submit" />,同時建立對應的Click事件處理程序。運行程序,能夠正確響應事件。而後設置btnSubmit.Visable=false,手動在頁面 上面添加<input type="submit" name="btnSubmit" value="Submit" />。運行程序,會出現一個包含EnableEventValidation內容的異常。設置<@Page EnableEventValidation="false">再運行程序,又能夠正確響應事件。觀察先後兩次__EVENTVALIDATION 的內容,能夠發現是不一樣的。關於出現的異常,能夠認爲在輸出的時候沒有包含btnSubmit,但是再提交到後臺的時候卻有相應的內容,先後不一致,因此 在開啓事件校驗的狀況下.NET拋出了異常。
解決辦法1: Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { //綁定數據; } }
解決辦法2: <pages enableEventValidation="false"/>ajax
可能出現的問題: 回發或回調參數無效。在配置中使用 <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 |
這個要具體分析。原本這個措施是asp.net2.0用來防止客戶端「欺詐」服務器端的。例如原本輸出到客戶端的一個事件被觸發時須要回發的命令是「__doPostback( 'ctl01$abc ', 'user_1 ')」的,若是採起採起手段把回發參數由 user_1 改成 user_5 了,服務器端會從新覈對輸出的是否是user_5,發現和這個頁面上一個輸出的腳本不一致,就會產生這個異常。
可是,不少程序員寫的程序按照過去的習慣(或者按照更加高級靈活的設計例如一些Ajax組件)沒有考慮這個問題或者是忽略這個欺詐的可能性,寫的程序可能會修改參數或者修改目標控件。
所以這樣具體問題具體分析。不太可能跟瀏覽器距離服務器的遠近有關,應該仍是編程邏輯問題。你應該對出異常的畫面以及所使用的數據進行分析。有時候,常常也須要將這個參數設置爲false,放棄安全管理。瀏覽器