asp.net下完全消除掉ViewState该注意一些什么???面试遇到过,但是一直没怎么在意,今天感觉这个问题还是比较
asp.net下完全消除掉ViewState该注意一些什么???
面试遇到过,但是一直没怎么在意,今天感觉这个问题还是比较重要的,所以翻出来问问?
其实主要是问问GridView这样的ViewState超级生产户在禁用了ViewState时该如何“生存”?
能给个例子最好了。
以前试着写了一个绑定DropDownLIst的demo,在没有禁掉viewstate时,只需要在Page_Load()事件里面写
[解决办法]
这个问题俺也想知道
[解决办法]大牛来了.
[解决办法] 该回复于2012-05-05 14:27:32被版主删除
[解决办法]禁用ViewState 后
你看ItemCommand还能使不。
[解决办法]1.不想要viewstate就不要用asp.net了,以现在的技术手段,html+js+WCF不比asp.net逊色
你可以自己从头写js库,也可以结合JQ,MsAjax.js等开源库
2.即使使用html+js,往返的数据交易量也不见得比asp.net少
很多人仅仅是看到页面上没有hidden,心里面就舒坦了
[解决办法]你不能一方面享受这代理人提供的方便,
另一方面有不让代理人占用任何资源
[解决办法]既想依托ASP.NET强大与便利,又不想看到ViewState,可以使用ASP.NET MVC替换ASP.NET WebForm
MVC可自由控制HTML的输出
此观点纯属个人愚见
[解决办法]注意测试各种交互操作
[解决办法]viewstate 是服务器控件的专属,用来页面回发时保存服务器控件的value;
会产生额外的hidden在里面; 那么如果像服务器控件比如绑定控件,少了viewstate很多高级功能就无法使用;
所以,如果你是前台 建议少用服务器控件,禁用viewstate,改用js+div+css+轻量级的ashx或者wcf,来做你的webform;或者干脆用asp.net mvc好了,这个更直接!
后台的话,用服务器控件可以提高生产率,还是建议使用,毕竟后台是几个人用罢了,性能无所谓功能实现就ok!!
欢迎.net家族的斗士们,踊跃加入,共同探讨微软.net的奥秘,共同维护和推广.net的应用!69594961
[解决办法]比如说你随便放一个Label控件,假设操作中你把它的ForeColor修改了,假设禁用ViewState,那么任何回发都会让你丢失这个状态。而假设你自己维护它......一个复杂的交互页面上你需要维护的这类状态何止成千上万?!
对于只是想做网页的,可以考虑禁用ViewState。对于想做交互应用程序的,首要地是先想好应该如何测试交互操作过程,然后才编码,而不能为了编码而编码。
[解决办法]我有时做网站时也会试着禁用ViewState但做交互型的应用程序时就不大敢去禁用,因为对它的了解的不够深!
不过我个人也很爱好html+js+wcf
[解决办法]webService这种方式的开发,ASP.NET MVC也很有意思,但了解的不够深,感觉太依赖于微软了,引用了好多东西。我还是偏喜欢开源的。
[解决办法]http://msdn.microsoft.com/zh-cn/library/y5y3c2c5(v=vs.80).aspx
http://msdn.microsoft.com/zh-cn/library/75x4ha6s(v=VS.90).aspx
http://msdn.microsoft.com/zh-cn/library/system.web.ui.control.viewstate(v=VS.90).aspx
[解决办法]大部份情况完全可以禁用ViewState,对你的应用程序毫无影响。
至于在GridView中,我记得是禁用ViewState后,分页数字点了将会没有反应。也就是不能分页了。
[解决办法]ViewState并完全是一个坏东西,甚至你可以自己往里面存信息。
[解决办法]
从缓存的角度看,ViewState很有用,因为他可以作为页面的一部分,缓存仅仅与某个特定页面相关的信息。
[解决办法]
是否禁用,要看页面是否需要回发。
[解决办法]简单的说,就是无法通过<form>进行会发的HTML元素的值,比如Span,必须通过隐藏字段回发,所以就有了ViewSatate,不知道你是否明白?
[解决办法]就lz举的这个例子
当我禁掉viewstate时,在页面会发时,ddl控件里面的值就没有了(我的解决方法是去掉if(!IsPostback){}这个判断,等于每次加载页面的时候都执行一次,感觉性能肯定有点影响,所以还不如保持viewstate得了。)
去掉if(!ispostback)每次都会在执行一遍绑定,这样你选的值无论什么都是第一项。
你可以在oninit事件中给dropdownlist绑定,不要在load事件中。
[解决办法]其实viewstate不仅仅是生成隐藏字段带来负面影响。其实维持这个viewstate也是消耗性能的一方面。。。
-----------------------------
何讲?
我只想知道在禁掉viewstate后达到未禁用之前的效果。。。
--------------------------------------------
如果你想用自己的方式去实现viewstate的效果,全面衡量后你会发现 viewstate 的做法确实在 webform 中已经是最简形式了。