ViewState,Session

來源:互聯網
上載者:User

ViewState可以在控制項,頁,程式,全域配置中設定。預設情況下 EnableViewState 為 true 。如果要禁止所有頁面 ViewState 功能,可以在程式配置中把 EnableViewState 設為 false 。

在控制項中:

<asp:DataGridEnableViewState="false"%>

DataGrid1.EnableViewState= false;
在頁中:

<%@ PageEnableViewState="false" %>

Page.EnableViewState= false;
在程式中:

在web.config中加入

<pages enableViewState="false" />
在全域配置:

在machine.config中修改

<pages enableViewState="false" />

EnableViewState優先順序別:
全域配置 < 程式 < 頁< 控制項

注意:下列伺服器控制項不能禁止ViewState

Textbox
Checkbox
Checkbox List
RadioButtonList
上面控制項的狀態通過IPostBackEventHandler 和 IPostBackDataHandler介面處理,而不是ViewState的機制,所以EnableViewState沒有效果。(我發現類似於input的控制項EnableViewState都沒有作用)

ViewState是ASP.NET中用來儲存WEB控制項回傳時狀態值一種機制。在WEB表單(FORM)的設定為runat="server",這個表單(FORM)會被附加一個隱藏的屬性_VIEWSTATE。_VIEWSTATE中存放了所有控制項在ViewState中的狀態值。

ViewState是類Control中的一個域,其他所有控制項通過繼承Control來獲得了ViewState功能。它的類型是system.Web.UI.StateBag,一個名稱/值的對象集合。

當請求某個頁面時,ASP.NET把所有控制項的狀態序列化成一個字串,然後做為表單的隱藏屬性送到用戶端。當用戶端把頁面回傳時,ASP.NET分析回傳的表單內容,並賦給控制項對應的值。當然這些全部是由ASP.NET負責的,對使用者來說是透明的。

Session存在於伺服器端可以跨頁面.耗費伺服器資源.
ViewState載體是分頁檔,消耗頻寬.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.