今天在公司竟然有人在问我ViewState原理。其实这个事最基础的东西。可能在网上说的有点笼统。我现在将我个人理解分享一下:
首先浏览器经过发送请求至服务器端后,服务器端会接受这个请求,查看客户端发送过来的ViewState(不管是自定义还是服务控件所创建)。
他会自动创建一个__VIEWSTATE的东东(这个你不用管__VIEWSTATE)到底是什么。可以当他是一个临时存储的变量(在.NET中可能叫隐藏域)。
这个东东当然是经过Base64加密以后返回到浏览器端(这一加密过程在页面生命周期的SaveState事件中的SaveAllState方法中完成。)
当浏览器提交表单的时候 将__VIEWSTATE的隐藏域也一起提交到服务端 这个时候 页面生命周期的ReadState事件
的ReadAllState方法会将加密后的值反base64解密 最后将值赋值给名字叫做name的ViewState
最后来操作ViewState中的值
时间: 2024-10-04 19:26:25