HTTP协议是“无状态”的,造成服务器无法记住特定用户的请求。
Web服务器不会保留每次浏览器所发Http请求的具体信息和当时的状态。
即使请求来自同一个浏览器,它也将其视为“陌生人”,绝不会“记得”浏览器在不久之前曾经“拜访”过自己。
ASP.NET专门提供了在一个网页多次请求之间保存信息的对象:viewState(视图状态)对象来模拟“成员变量”的角色。
public partial class 练习1_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
ViewState["Counter"] = 0;
}
}
protected void btnCal_Click(object sender, EventArgs e)
{
int counter =Convert.ToInt32 ( ViewState["Counter"]);
counter++;
this.ltaCounter.Text = counter.ToString();
ViewState["Counter"] = counter;
}
ViewState中保存的数据全部被转换成object类型,取出时务必强制转换成特定类型。
ViewState只能在同一个页面的连续多次请求之间保存信息,页面跳转后信息就会丢失。