前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASP.NET ViewState之详解

ASP.NET ViewState之详解

作者头像
小明爱学习
发布2019-01-07 13:57:32
1.4K0
发布2019-01-07 13:57:32
举报
文章被收录于专栏:smh的技术文章smh的技术文章

今天我们来了解一下在ASP.NET中ViewState的作用。

ViewState=视图状态;

ViewState的通用解释就是:是 ASP.NET 页中的存储库,可以存储必须在回发过程中保留的值。页框架使用视图状态在各个回发之间保存控件设置。在各个回发之间保存值,而不将这些值存储在会话状态或用户配置文件中,将信息存储在视图状态中,这样在下次将该页发送到服务器时,代码便可以在页加载事件过程中访问这些信息。

所谓回发:就是由服务器控件导致的页面刷新。

ASP.NET 页框架使用视图状态在往返过程之间保存页和控件值。在呈现页的 HTML 时,必须在回发过程中保留的页和值的当前状态将被序列化为 Base64 编码字符串。然后,它们将被放入页中的一个或多个隐藏字段。

大家在开发程序的时候,查看网页源代码。是不是都发现都多了一个ID名为__VIEWSTATE的hidden控件呢。这就是在回发过程中保留的值。

为什么要微软要开发这样一个功能呢?

因为Web 应用程序是无状态的。每次从服务器请求页时,都会创建网页类的一个新实例。这通常意味着在每次往返过程中会丢失该页及其控件中的所有信息。

比如:我有一个DropDownList控件,然后我点击了某个Button控件,在Button对应的click事件下修改了DropDownList的默认选项,这时候,ViewState中就会记录DropDownList的值,然后在下一次的回发事件中,DropDownList的值就会是通过Button事件修改过的值,而不是初始值。

说了怎么多,我们上代码吧,这样更方便理解。

1.html代码

EnableViewState为false就是禁用ViewState。

2.Button1_Click事件

3.点击刷新按钮,触动回发

相信大家看到这里可以理解了,第一个Label的值是通过Button1_Click事件改变过后的值,而第二个Label的值则是初始值,因为第二个Label禁用了ViewState。

ViewState不仅如此,也可用来存在我们自己的变量。

总结:ViewState由于数据存放在客户端,肯定会减少服务器的压力,但是,如果ViewState的数据量过大,肯定是会影响页面的加载速度和性能的。

提示:文本框输入类的值都不会存放在ViewState中,

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年09月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档