ViewState 是什么?
<wbr></wbr>
1 ViewState 用来跟踪和保存控件的状态信息。否则这些信息可能会丢失,原因可能是这些值不随着 form 回
<wbr> 发,或者根本就不在 page 的 html 中。<br>
2 ViewState 中保存着代码中改变的控件属性,通过代码绑定到控件的任何数据,以及由用户操作触发,回发的</wbr>
<wbr> 任何更改。<br>
3 ViewState 还提供了一个状态包(StateBag), 这是一个特殊的集合或字典(collection or dictionary), 可以</wbr>
<wbr> 用来保存,通过一个 key 来恢复任意的对象或者值。</wbr>
<wbr></wbr>
ViewState 的格式
<wbr></wbr>
1 保存在表单中的 __VIEWSTATE 隐藏字段。是 Base64 编码过的,而不是加密!
2 但要加密也是可以的(设置 enableViewStateMac 来使用 machine key 进行 hash)
3 加密:设置 machineKey 验证, 但这必须在机器级别设置,需要更多的资源,所以不推荐。
<wbr></wbr>
ViewState 的一个小用法
像session.是会话级别的.只要会话没有过期.session中存的数据就在.viewstate是页面级别的.只要这个页面
在.viewstate中存的数据就在.就是说viewstate中存的数据只能在声明该变量的页面中使用.
比如在某页的page_load中声明了:ViewState["test"]="aaa";那么在该页中的任何一个方法中都可以使用
ViewState["test"]来直接得到值"aaa".
<wbr></wbr>
<wbr></wbr>
什么情况下可以禁用ViewState?
<wbr></wbr>
我们知道,asp.net默认情况下是启用viewState的,这样会在页面中生成冗长的隐藏字段。
ViewState对于需要postback操作的页面才有用(即产生交互的页面)!
那么对于只需要展示的页面,完全没有必要使用viewstate!
<wbr></wbr>
禁用方式
1 页面整体禁用:顶部的Page中EnableViewState=false
2 指定控件禁用:控件中EnableViewState=false
<wbr></wbr>
注意点
需要我们注意的是,我们禁用了页面的ViewState以后,并没有完全去掉页面的ViewState,但页面的ViewState的长度会小很多。
如果要求页面完全不存在ViewState,则不能出现ruant=server的form。
如果Button没有放到<form ruant="server"></form>中,则这个按钮时不可用的!
部分内容参考子《你必须知道的.NET》
分享到:
相关推荐
在某些场景下,例如轻量级的应用或者不需要状态保持的页面,禁用ViewState是明智的选择。 标题所提及的"asp.net 禁用viewstate在web.config里",指的是在全局级别禁用整个应用程序中的ViewState,而不是单独在每个...
对于不需要状态持久化的控件或页面,可以禁用ViewState以减少网络传输量。这可以通过设置控件或页面的`EnableViewState`属性为`false`来实现。 #### 指定ViewState的持久化位置 除了默认的隐藏表单字段之外,还可以...
禁用ViewState可以通过在页面指令`@Page`中设置`EnableViewState="false"`实现,或者针对特定控件设置`EnableViewState="false"`。 需要注意的是,启用ViewState会增加页面的大小,因为ViewState数据会随页面一起...
但需要注意的是,并非所有控件都支持禁用ViewState。 #### 使用ViewState存储数据 在实际开发过程中,ViewState还可以被用来存储数据。具体来说,可以通过以下几种方式操作ViewState: - 设置数据:`ViewState...
5. **控制ViewState**:ASP.NET提供了多种方式来管理ViewState,如在控件级别禁用ViewState,使用ViewStateMode属性,或者全局禁用然后按需启用。开发者可以通过工具来检查这些设置的效果。 6. **安全性考量**:...
3. **禁用ViewState:** ```xml ``` ##### ViewState的注意事项: - **性能:** ViewState会增加页面的大小,尤其是在包含大量控件的页面上。可以通过压缩或优化来减轻这一问题。 - **安全性:** 默认情况下,...
在某些情况下,完全禁用ViewState或使用其他方法(如Session或QueryString)来管理状态可能是更优的选择。 综上所述,理解并应用ViewState压缩算法对于优化ASP.NET web应用程序的性能至关重要。开发者需要根据具体...
如果不需要控件状态保持,可以禁用ViewState来优化性能。 **Application** Application是全局共享的存储区域,用于在整个应用程序生命周期内存储数据。所有用户都可以访问Application中的数据,适合保存需要跨多个...
因此,根据实际情况,如果不需要保持状态或者可以采取其他措施保持状态,可以考虑禁用ViewState,以节省资源并提高性能。 禁用ViewState可以通过以下三种方法实现: 1) 控件级别的禁用:如果只需要对页面中的某个...
5. 何时不使用ViewState:对于不需要跨请求保留状态的控件,可以禁用ViewState以减少页面大小。例如,只读的数据显示控件通常不需要ViewState。 6. ViewState安全性:虽然ViewState是加密的,但并非完全安全。恶意...
4. 学习如何禁用或部分禁用ViewState以优化网页性能。 总之,`ViewStateDecoder21`为ASP.NET开发者提供了一个深入理解ViewState工作方式的工具,有助于提高开发效率和应用安全性。在实际开发中,合理管理和使用...
3. **控制ViewState**:通过查看器,开发者可以决定哪些控件应该禁用ViewState,以减小页面传输的数据量。 4. **提高性能**:了解哪些数据不必要地存储在ViewState中,可以进行优化,减少服务器负载和网络传输时间。...
- **应用程序级别**:如果需要在所有页面上都禁用Viewstate,可以在Web.config文件中设置`EnableViewState="false"`。 ```xml ``` #### 5. 使用技巧与注意事项 - 在决定禁用某个控件的Viewstate之前,...
现在,让我们深入探讨一下这个问题,特别是为什么某些Web控件即使在禁用ViewState后仍能保留值。 首先,我们需要理解回发的工作原理。在ASP.NET Web Forms中,当用户与页面上的按钮或其他交互元素交互时,整个HTML...
38.如何启用和禁用ViewState保存状态信息的功能 39.如何应用IsPostBack控制页面的加载 41.如何使用Trace对象进行跟踪调试(页面级) 42.如何使用#Include语法将文件添加到页面 43.如何使用编程的方式处理异常信息 ...
然而,对于只展示静态内容的页面,如新闻展示页,禁用ViewState可以减少页面大小,提高加载速度。禁用ViewState有两种方式:一是全局禁用,通过在Page指令中设置EnableViewState="False";二是针对特定控件禁用,...
此外,通过在页面级别或控件级别设置`EnableViewState`属性为`false`,可以全局禁用ViewState,进一步降低页面传输的开销。 综上所述,网站优化不仅涉及到数据库层面的操作优化,还包括数据读取方式的选择、数据...
禁用ViewState(`<pages enableViewState="false">`)可以显著减少页面大小,提升性能。 7. **禁用发布证据生成**: `<runtime><generatePublisherEvidence enabled="false"/>`可以防止.NET Framework在验证程序集...