[ASP.NET]ViewStateMode與EnableViewState的差別

[ASP.NET]ViewStateMode與EnableViewState的差別

ASP.NET4.0起,各種Control(包含Page)都新增了一個屬性,稱為ViewStateMode,這個屬性的說明:Specifies whether view state will be enabled for a control。

代表它是用在控制每個Control的ViewState的啟用與關閉狀態,而這個屬性有三種值可以設定,分別是以下三種:

image

(參考自:http://msdn.microsoft.com/zh-tw/magazine/ee431529.aspx)

但問題來了,根據這樣的說明,兩者之間似乎沒有太大差別,那為何還要有這個屬性,總不會是多餘的吧,自然不是的,我們看看下方這篇文章:
ViewStateMode Enumeration

往下看到Remark的部分,這裡有一段話:

The ViewStateMode property of a page or a control has an effect only if the EnableViewState property is set to true. If the EnableViewState property is set to false, view state will be turned off even if the ViewStateMode property is set to Enabled.

ViewStateMode只有在EnableViewState的屬性設定為True時才會有作用,從這邊我們可以打個比方來說,EnableViewState算是電源的總開關,ViewStateMode則算是每間房間的電燈開關,只要總開關關閉了,其他的開關如何切換都沒有效果了。

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。