前幾天在調整一個網站的執行效能時,發現有幾頁的 ViewState 特別大,但是內容卻蠻簡單的,最主要就是一個 Repeater 控制項,內容不多,但 ItemTemplate 中只有用到一個 LinkButton 控制項,其他都是一般的 HTML 標籤加上 DataBound 語法 ( <%# Eval("XXX", "") %> ),由於我有用到 UpdatePanel 包住這個 Repeater 控制項,所以我 ViewState 不能關閉,關閉就會導致錯誤發生,所以我只能在 ItemTemplate 盡可能降低 ViewState 的使用,不過就因為除了 LinkButton 控制項之外的地方我都沒有可以調整的地方,才讓我想到還有個 PlaceHolder 控制項可用。
... 繼續閱讀 ...
在每一個 ASP.NET 專案中通常都會用到好多 DropDownList 控制項,不過我想很多人不會特別注意到 DropDownList 會產生多少 ViewState,預設來說 DropDownList 控制項會將所有選項 ( ListItem ) 的資料都先儲存到 ViewState 中,以利如果選項很多的話就很有可能導致 ViewState 突然變很大,不但讓網頁下載回應速度變慢,也浪費網路頻寬。
... 繼續閱讀 ...
今天在這裡看了一篇關於 ViewState 的文章,他將 ViewState 的運作寫的清清楚楚,撰寫 ASP.NET 的程式設計師一定不能錯過這篇文章。
... 繼續閱讀 ...
問題是這樣的,當 ASP.NET 因為網頁還沒全部下載完成時,使用者就按下網頁中的任意一個 PostBack 的按鈕或連結時,就會發生 Viewstate MAC 的驗證失敗 的錯誤訊息!
... 繼續閱讀 ...