当前位置:编程学习 > C#/ASP.NET >>

突然对ViewState产生了疑惑?为什么要用ViewState呢

为什么要用ViewState呢,如果是为了保存会话信息,比如一个文本框,里面的内容传送到服务器后,服务器对文本框进行赋值,然后再发往客户端就行了,为什么要用隐藏字段来保存所谓的ViewState信息呢?里面保存的到底是什么信息? --------------------编程问答-------------------- 你把ViewState解析出来就知道保存的是什么了. --------------------编程问答-------------------- dddddd --------------------编程问答-------------------- ViewState不容易丢失。。 --------------------编程问答-------------------- 保存交互的各种状态信息啊 --------------------编程问答-------------------- 执行了服务端事件,页面上的表单就会提交一次,如果没有ViewState来保存表单元素的值,你想想会是什么情况,就好比"你要注册一个用户,填了一对资料,点确定以后服务器验证账号重复,注册失败"这种情况 --------------------编程问答--------------------
引用 5 楼 fkago 的回复:
执行了服务端事件,页面上的表单就会提交一次,如果没有ViewState来保存表单元素的值,你想想会是什么情况,就好比"你要注册一个用户,填了一对资料,点确定以后服务器验证账号重复,注册失败"这种情况


没明白 --------------------编程问答-------------------- ViewState保存的不仅仅是文本框的东西

比如Dropdownlist,绑定的时候是在!IsPostBack里绑定的

提交的时候没有绑定,那如果没有ViewState,服务器怎么知道列表是哪些?

ViewState还可以保存变量等东西,这些东西都是html中没有的 --------------------编程问答-------------------- 当然,对于小网站,ViewState很好用,但是访问量大的网站,ViewState一般都是关闭的。 --------------------编程问答-------------------- 如果能不用ViewState  最好别用,ViewState  仅仅限制单页面 --------------------编程问答-------------------- DDDD --------------------编程问答-------------------- 个人经验:有postback操作的页面,才用viewstate 不然全禁掉也没关系 --------------------编程问答-------------------- "比如一个文本框,里面的内容传送到服务器后,服务器对文本框进行赋值,然后再发往客户端就行了" 
你这是一种印象派的理解方式.... --------------------编程问答-------------------- 要是你有动态生成的控件,如文本框,你在里面填写了值,但是你在本页面引发会发生回传的事件,那么你会丢失文本框的值,即使显示文本框里面有数据。要是是存储在视图状态里面,就不会出现这情况。 --------------------编程问答-------------------- xuexi --------------------编程问答-------------------- 可以到我的博客看看,有一篇很精辟的文章 --------------------编程问答-------------------- 对象在服务器与客户端之间传几个来回总是还存在着呢?

viewstate --------------------编程问答--------------------
引用 15 楼 zzxap 的回复:
可以到我的博客看看,有一篇很精辟的文章


EnableViewState="false"之后无法遍历控件

postback后要每次都加载数据,不能缓存


哈哈,屁精。


--------------------编程问答--------------------
引用 16 楼 goga21cn 的回复:
对象在服务器与客户端之间传几个来回总是还存在着呢?

viewstate


存在着啊,比如那个文本匡一直存在着,他的值都传到服务器了,还需要用隐藏字段保存它的值吗 --------------------编程问答--------------------
引用 7 楼 youbl 的回复:
ViewState保存的不仅仅是文本框的东西

比如Dropdownlist,绑定的时候是在!IsPostBack里绑定的

提交的时候没有绑定,那如果没有ViewState,服务器怎么知道列表是哪些?

ViewState还可以保存变量等东西,这些东西都是html中没有的


你说的这个dropdownlist很精辟,不过文本框我觉得根本没必要保存它的状态值,你说呢 --------------------编程问答--------------------
引用 15 楼 zzxap 的回复:
可以到我的博客看看,有一篇很精辟的文章


你的播客就下面两句话:

ViewState会在页面产生一个隐藏控件 value是一大堆乱码。他会保存用户控件的数据 回调时就不用再取数据库

如果禁用掉ViewState ,当页面postback时,用户控件的数据就会消失。需要重新加载。
--------------------编程问答-------------------- ViewState保存的不仅仅是文本框的东西 

比如Dropdownlist,绑定的时候是在!IsPostBack里绑定的 

提交的时候没有绑定,那如果没有ViewState,服务器怎么知道列表是哪些? 

ViewState还可以保存变量等东西,这些东西都是html中没有的 --------------------编程问答-------------------- 就是方便页面来回传递中不保存好数据。 --------------------编程问答-------------------- EnableViewState="false" --------------------编程问答-------------------- EnableViewState="false" --------------------编程问答-------------------- web应用程序是无状态的,够明白了吧。 --------------------编程问答-------------------- ViewState 挺烦的. --------------------编程问答--------------------
引用 18 楼 chaofd 的回复:
引用 16 楼 goga21cn 的回复:
 对象在服务器与客户端之间传几个来回总是还存在着呢?

 viewstate


 存在着啊,比如那个文本匡一直存在着,他的值都传到服务器了,还需要用隐藏字段保存它的值吗


这就是viewstate的作用。 --------------------编程问答-------------------- --------------------编程问答-------------------- 你先把HTTP协议彻底搞清楚了,就知道ViewState有什么用了...也就知道哪里该用ViewState哪里不该用了... --------------------编程问答--------------------
引用 29 楼 vrhero 的回复:
你先把HTTP协议彻底搞清楚了,就知道ViewState有什么用了...也就知道哪里该用ViewState哪里不该用了...


说的既是啊,还是要看源头 --------------------编程问答-------------------- 禁用了ViewState必须重新加载数据,比如原来页面上数据是A20 - A01,用户点删除A19(第二行),这时数据已经给别人更新了,添加了一条A21,倒序,那么页面上就是A21 - A02,那么第二行是A20,于是A20就被删除了。
ViewState可以保存GridView中的数据,删除时,可以不加载,原先数据还在,可以通过行号知道原来的值,知道用户选的是哪一条
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,