無效的回發或回調參數。為什麼?
所以我得到了例外
無效的回發或回調參數。使用配置或頁面中的 <%@ Page EnableEventValidation=“true” %> 啟用事件驗證。出於安全目的,此功能驗證回發或回調事件的參數是否源自最初呈現它們的伺服器控制項。如果數據有效且符合預期,請使用 ClientScriptManager.RegisterForEventValidation 方法註冊回發或回調數據以進行驗證。
使用以下堆棧跟踪
$$ System.ArgumentException: Untrapped Exception: Invalid postback or callback argument. Event validation is enabled using 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 validation. $$ 在 System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) 在 System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) 在 System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)在 System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page。在 System.Web.UI.Page.ProcessRequestMain 的 RaisePostBackEvent(NameValueCollection postData)(布爾 includeStagesBeforeAsyncPoint,布爾 includeStagesAfterAsyncPoint)
送出表單後發生異常,然後在頁面重新載入之前快速點擊連結按鈕下載同一頁面上的文件。
有人可以解釋為什麼在執行上述操作時會發生此異常的詳細資訊嗎?
提前致謝!
這一定是 .NET 中最令人沮喪的錯誤消息之一,但是一旦您對正在發生的事情有所了解,它就會變得有意義。.NET 喜歡了解正在發生的一切。它跟踪它放置在頁面上的所有元素。同樣,當 .NET 收到來自它不知道的東西的輸入時,它會被冒犯。在您的情況下,聽起來,當您點擊 LinkButton 時,.NET 認為它不應該存在。根據我的經驗,這可能有兩個原因:
- 您正在對創建新輸入或複製現有輸入的客戶端巫術進行操作。
- 在處理表單送出時,.NET 對 LinkButton 做了一些事情,導致它不再可用。我遇到的一些範例是,當您的 LinkButton 在後端動態創建時,或者您正在使用 UpdatePanels 並且它們的內容在表單送出期間發生更改。
基本上,我相信如果您單步執行表單送出程式碼並觀察 LinkButton,您會看到 .NET 忘記了它,這可以理解地在點擊 LinkButton 時觸發此“安全異常”。