关于Asp.net 状态管理

本文介绍了ASP.NET中使用的八种状态管理机制,包括视图状态(Viewstate)、查询字符串、自定义Cookie、会话(Session)对象等,并通过实例详细解释了视图状态的工作原理及应用场景。

一,概述

为了克服HTTP协议的无状态这一特点,asp.net中可以使用五种状态机制:

1,视图,Viewstate

2,查询字符串,即在URL后的?key=value&key1=value1

3,自定义Cookie

4,会话Session对象

5,应用Application对象

6,配置文件

7,缓存Cache对象

8,在Global.asax中设置静态成员

二,分述

1,视图,Viewstate

a. 不会增加服务器负担,但由于viewstate隐藏在页面中,会是页面的size变大,加大传输量。

b. 不十分安全,因为状态传输到了客户端。客户可以进行修改。当然可以采取一定的加密方式。

c.  应用范围只限于本页面,多页面间无法共享

d. 控件不一定非要用enableViewState,有些情况下,最好设置为false

 

2,查询字符串,即在URL后的?key=value&key1=value1

a. 要注意UrlEncode来避免url中的非法字符。HttpUtility类中有一个

b. 服务端用Request.QueryString[“XX”]来获取

3,自定义Cookie

4,会话Session对象

 

5,应用Application对象

6,配置文件

7,缓存Cache对象

三,举例

1,ViewState

在default.aspx中加入以下代码:

<asp:TextBox ID="textbox1" runat="server" EnableViewState="true" OnTextChanged="Ontextbox1_TextChanged"></asp:TextBox>

<asp:Button ID="btn1" runat="server" Text="Button"  />

在default.aspx.cs中加入以下代码:

protected void Ontextbox1_TextChanged(object sender, EventArgs e)
{
        Response.Write("text changed!");
}

启动执行后,输入“tt”,点按钮,会得到“text changed!”,这时,再点一次,“text changed!”消失,因为第三次和第二次输入没有不同。

将EnableViewState属性设置false,启动后,输入“tt”,点击按钮,得到“text changed!”,再点一次,依然得到“text changed!”

因为当EnableViewState为true时,每次比较是同上一次比较,设为false后,每次比较是于程序初始状态比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值