ASP.NET -- WebForm -- 頁面生命周期 ASP.NET 頁運行時,此頁將經歷一個生命周期,在生命周期中將執行一系列處理步驟。這些步驟包括初始化、實例化控制項、還原和維護狀態、運行事件處理程式代碼以及進行呈現。瞭解頁生命周期非常重要,因為這樣做您就能在生命周期的合適階段編寫代碼,以達到 ...
ASP.NET -- WebForm -- 頁面生命周期
ASP.NET 頁運行時,此頁將經歷一個生命周期,在生命周期中將執行一系列處理步驟。這些步驟包括初始化、實例化控制項、還原和維護狀態、運行事件處理程式代碼以及進行呈現。瞭解頁生命周期非常重要,因為這樣做您就能在生命周期的合適階段編寫代碼,以達到預期效果。
常規頁生命周期階段
1. 頁請求
頁請求發生在頁生命周期開始之前。用戶請求頁時,ASP.NET 將確定是否需要分析和編譯頁(從而開始頁的生命周期),或者是否可以在不運行頁的情況下發送頁的緩存版本以進行響應。
2. 開始
在開始階段,將設置頁屬性,如 Request 和 Response。在此階段,頁還將確定請求是回發請求還是新請求,並設置 IsPostBack 屬性。此外,在開始階段期間,還將設置頁的 UICulture 屬性。
3. 頁初始化
頁初始化期間,可以使用頁中的控制項,並將設置每個控制項的 UniqueID 屬性。此外,任何主題都將應用於頁。如果當前請求是回發請求,則回發數據尚未載入,並且控制項屬性值尚未還原為視圖狀態中的值。
4. 載入
載入期間,如果當前請求是回發請求,則將使用從視圖狀態和控制項狀態恢復的信息載入控制項屬性。
5. 驗證
在驗證期間,將調用所有驗證程式控制項的 Validate 方法,此方法將設置各個驗證程式控制項和頁的 IsValid 屬性。
6. 回發事件處理
如果請求是回發請求,則將調用所有事件處理程式。
7. 呈現
在呈現之前,會針對該頁和所有控制項保存視圖狀態。在呈現階段中,頁會針對每個控制項調用 Render 方法,它會提供一個文本編寫器,用於將控制項的輸出寫入頁的 Response 屬性的 OutputStream 中。
8. 卸載
完全呈現頁並已將頁發送至客戶端、準備丟棄該頁後,將調用卸載。此時,將卸載頁屬性(如 Response 和 Request)並執行清理。