ASP.NET中的ViewState
ViewState是ASP.NET中用来保存WEB控件回传时状态值一种机制.在WEB窗体(FORM)的设置为runat="server",这个窗体(FORM)会被附加一个隐藏的属性_VIEWSTATE._VIEWSTATE中存放了所有控件在ViewState中的状态值.
ViewState是类Control中的一个域,其他所有控件通过继承Control来获得了ViewState功能.它的类型是system.Web.UI.StateBag,一个名称/值的对象集合.
当请求某个页面时,ASP.NET把所有控件的状态序列化成一个字符串,然后做为窗体的隐藏属性送到客户端.当客户端把页面回传时,ASP.NET分析回传的窗体属性,并赋给控件对应的值.当然这些全部是由ASP.NET负责的.
定义ViewState属性
public int PageCount
{
get { return (int)ViewState["PageCount"]; }
set { ViewState["PageCount"] = value; }
}
使用ViewState的条件
如果要使用 ViewState,则在 ASPX 页面中必须有一个服务器端窗体标记 (<form runat=server>).窗体字段是必需的,这样包含 ViewState 信息的隐藏字段才能回传给服务器.而且,该窗体还必须是服务器端的窗体,这样在服务器上执行该页面时,ASP.NET 页面框架才能添加隐藏的字段.
Page 的 EnableViewState 属性值为 true.
控件的 EnableViewState 属性值为 true.
提醒:
1. 当存在页面回传时,不需要维持控件的值就要把 ViewState 禁止.
2. ViewState的索引是大小写敏感的.
3. ViewState不是跨页面的.
4. 为了能包存在 ViewState 中,对象必须是可流化或者定义了 TypeConverter.
5. 控件 TextBox 的 TextMode 属性设置为 Password时,它的状态将不会被保存在 ViewState 中,这应该是出于安全性的考虑.
6. 在页面没有回传 或 重定向 或 在回传中转到(transfer)其他页面时不要使用 ViewState.
7. 在动态建立控件时要小心它的 ViewState.
8. 当禁止一个程序的 ViewState 时,这个程序的所有页面的 ViewState 也被禁止了.
9. 只有当页面回传自身时ViewState 才是持续的.
设置ViewState
ViewState可以在控件,页,程序,全局配置中设置.缺省情况下 EnableViewState 为 true .如果要禁止所有页面 ViewState 功能,可以在程序配置中把 EnableViewState 设为 false .
分享到:
相关推荐
ASP.NET ViewState 初探
ASP.NET ViewState解决办法,优化办法,移动ViewState
asp.net viewstate 查看器,可以帮助你查看你访问的网页是否存有viewsate, ASP.NET ViewState 助手,方便你实时分析.net网页的各种数据
在asp.net中viewstate是网页状态保持的一项重要技术手段,ViewState 代码查看器 能够很方便的查看状态,方便调试和开发.
ASP.NET ViewState 初探.doc ASP.NET Web 方法中的 XmlElement 参数的功能.d ASP.NET 中 Cookie 的基本知识.doc ASP.NET 页面对象模型.doc asp.net200问-专家门诊—ASP.NET开发答疑 ASP.NetWebPage深入探讨....
ASP.NET中,为了模拟Winform中的事件响应机制,微软的工程师真是煞费苦心,发明了“回发”机制,使得编写WEB页面变得和Winform一样简单。
ASP.net压缩ViewState,ASP.net操作EXCEL,Word,ASP.net获得验证码,汉字验证码、扭曲验证码
理解ASP.NET的ViewState MSDN资料
ASP.NET 维持 ViewState 本文讲解如何维持 ViewState。 ASP.NET 文本框控件 本章阐述 ASP 的基础:文本框控件。 ASP.NET 按钮控件 本章阐述 ASP 的基础:按钮控件。 ASP.NET Binding ASP.NET 数据绑定 本文...
无需安装,用于分析viewstate,非常方便的ViewState查看工具
(1、默认情况下ASP.Net是启用ViewState的,这样在页面中会生成冗长的隐藏字段,ViewState对于需要PostBack处理的页面才可能有用,对于新闻展示页面不需要交互完全没必要用ViewState。 (2、禁用ViewState的方式:•...
asp.net网页原文件中总出现一段很长的viewstate代码看着就头痛 所以在网上找了篇文章解决了这个问题,虽然VIEWSTATE没有完全隐藏,但大大的改善了网页源文件中VIEWSTATE的长度。
有些asp.net中使用viewstate,那里的内容是base64编码,此工具是把viewstate 内容给解析成原来内容,里面包括1.0,1.1,2.0三种版本的工具
具体实例教你如何做LoadRunner结果分析
asp.net中html页面含有viewstate页面状态,说实话很难看,所以尝试把它保存在服务器端,只是一个思路例子,希望对大家有所帮助。
asp.net 2.0中通过压缩ViewState 支持ajax压缩ViewState
比较学习ASP.net中的Session、ViewState、Application、Cookies
本文给大家介绍asp.net中viewstate的用法,涉及到viewstate的原理、用法、与session的对比等方面的知识,对viewstate用法感兴趣的朋友一起看看吧
Test-Drive ASP.NET MVC gets you started with all the fundamentals you need, whether you’re transitioning from older Microsoft technologies, or if you’re coming from an open-source background and ...