解決「無效的回傳或回呼引數」的錯誤

摘要:解決「無效的回傳或回呼引數」的錯誤

錯誤訊息:

「無效的回傳或回呼引數。已在組態中使用 <pages enableEventValidation="true"/> 或在網頁中使用 <%@ Page EnableEventValidation="true" %>

啟用事件驗證。基於安全性理由,這項功能驗證回傳或回呼引數是來自原本呈現它們的伺服器控制項。如果資料為有效並且是必需的,請使用 ClientScriptManager.RegisterForEventValidation

方法註冊回傳或回呼資料,以進行驗證。」


會遇到這個問題,是因為在程式中使用了 GridView,
每次執行 Page_Load 事件時都會 Bind 資料到這個 GridView,
遇到 PostBack 時就會觸發上述的錯誤。

解決這個錯誤訊息的辦法是,在 Page_Load 事件中檢查是否為 PostBack,
若否,才將資料綁到 GridView 上頭。例如以下這樣:
 


protected void Page_Load(object sender, EventArgs e)
    {
        // 取得 GridView 內容
        if (!IsPostBack)
        {
            data_bind();    // 自訂的 GridView databind函式
        }
    }