本来不明白asp.net是如何封装http的request的,得到 Page 对象的
今天看了
Understanding ViewState and Postback Processing in ASP.NET applications 和
Understanding ASP.NET View State
终于明白了原来 PostBack 就是asp.net实现 request 功能的机制(准确的说是类request功能,具体实现应该比较复杂,不过能理解就好)
Postback Data 就是 request 对应参数,
而 Postback Event 则相当于 request 的发起。
之前为了方便,都是在 Page 中用私有字段保存一些信息,但是发现一旦页面提交 form 之后,在 (!IsPostBack) 块内已经初始化过的私有字段又回到了 null 状态。
现在,了解了 Postback 的机制,就明白了,页面 form 提交后,浏览器上显示的页面已经是另一个由 Postback 触发的新 Page 了,由于是由Postback触发,这个Page具有 IsPostBack==true 的属性,因此在(!IsPostBack) 块内执行的初始化代码就不再执行。
因此,还是要像其他 framework 一样,应该用 Session 而不是 Page 的私有变量保存相关的信息。
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment