ViewState 可被頁面/控件層級關閉,導致依賴它的自訂控件失效。ASP.NET 2.0 引入 ControlState:同樣存在隱藏欄位,但不受 EnableViewState 影響,專存「控件核心運作必需」的極少量資料(如星級控件的 Score)。
Page.RegisterRequiresControlState(this) 於 OnInit 註冊。SaveControlState() 回傳物件(如 Score 整數)。LoadControlState(object savedState) 還原屬性。示範:關閉頁面 ViewState,星級控件仍能跨 PostBack 保持分數。
效果對比:
