您的位置:首页 > 其它

ViewState

2016-03-18 15:01 232 查看
ASP.Net将所有隐藏内容统一放到了名字为__VIEWSTATE的隐藏字段中,使用序列化算法将所有隐藏内容放到一个字符串中。
用于保存上一次操作的信息。
ViewState原理

1)隐藏一些字段,用来存放那些没有value属性值的控件

2)因为http是无状态的协议,所以当页面发生改变的时候,会用viewstate保持页面上一次的状态。

3)例如:label控件被浏览器渲染成<span>标记,所以label的值就存在了viewstate中;

同理,textbox控件也被浏览器渲染成了input标记,TextBox中的值不用存,因为TextBox本质上就是input,input自己会提交给服务器,不需要隐藏字段。4)可以通过ViewStateDecoder工具查看viewstate中的容的本来面目。
状态信息保存在隐藏字段中(viewstate)的优缺点

1)加大网站流量

2)降低访问速度

3)机密数据放到表单中会有数据欺骗等安全性问题(如网银等)。*
禁用ViewState默认情况下ASP.Net是启用ViewState的,这样在页面中会生成冗长的隐藏字段,ViewState对于需要PostBack处理的页面才可能有用,对于新闻展示页面不需要交互完全没必要用ViewState
禁用ViewState的方式:
页面整体禁用ViewState:在顶部Page中EnableViewState="False"
指定控件禁用ViewState,在控件上EnableViewState="False"

页面禁用ViewState以后并没有完全去掉ViewState,只要ViewState不是很大就可以了。如果要求一点儿ViewState都不能有,那么则页面中不能有runat=server的form,如果页面中没有表单元素,把form完全去掉就可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: