none
viewstate两次提交怎么都一样,提交的数据我也改过吗,不明白什么原因啊? RRS feed

  • 问题

  • viewstate两次提交怎么都一样,提交的数据我也改过吗,不明白什么原因啊?

    第一次登录用user 123456

    第二次登录用user1 654321

    两次截得viewstate都一样啊?

    viewstate运行机制是什么样的啊?谢谢!

    2010年6月25日 5:40

全部回复

  • 先简单说一下Viewstate的运行机制:

    ViewState就是用来存储数据的,就像HashTable一样通过键值对进行数据存取。ViewState通过String类型的数据作为Key,ViewState对应项中的值可以存储任何类型的值,实施上任何类型的值存储到ViewState中都会被装箱为Object类型。ViewState定义在System.Web.UI.Control类中的一个保护类型(Protected)的属性名称。所有服务器端的控件,包括用户自定义控件还有页面(Page)类都是继承自System.Web.UI.Control类,所以这些控件都具有这些属性。事实上许多服务器端控件大多数属性值都是利用ViewState来进行数据存储。

    通过Reflector查看TextBox.Text属性的源代码你可以看到类似如下的代码:

    public string Text { 

           get ...{ return (string)ViewState["Text"]; } 

           set ...{ ViewState["Text"] = value; }

    }

    2010年7月21日 4:44