日期:2014-05-18  浏览次数:20406 次

如何让页面不生成viewState,而不是简单的禁用
如何让页面不生成viewState,而不是简单的禁用

禁用仍会生成简单的viewstate,但看有些网站是一点__viewstate都没有

我试过,如果去掉form的 runat="server"的话,就可以不生成__viewstate隐藏域,但是服务器控件就没法用了

像其它网站是如何做到的呢?

------解决方案--------------------
有办法,保证没有一点__viewstate,前台不写任何代码,全部在后台读取模板,并填充数据库数据再写出来,就不会有__viewstate了
------解决方案--------------------
_viewstate是.net服务器控件生成的 只要你的页面不存在ruant="server" 就行了 不用服务器控件 可以使用ajax 模版技术等实现
------解决方案--------------------
或者前台不用任何服务务器控件,也行,输入框什么的,用HTML的,提交就POST到专门的处理页,或者AJAX处理,数据列表,在后台读成一个DATASET,再循环一下,弄成HTML代码,放到一个public string里面,
------解决方案--------------------
为什么要去掉__viewstate,其实很多人只是看不习惯网页里面有一大段加密的“乱码”而已,这段代码根本不会对你的程序的安全,效率,功能产生不良影响,又何必去硬要去它呢
------解决方案--------------------
为什么要去掉它呢?只要偏程得当,它不会占用你太多资源的。
------解决方案--------------------
探讨
为什么要去掉__viewstate,其实很多人只是看不习惯网页里面有一大段加密的“乱码”而已,这段代码根本不会对你的程序的安全,效率,功能产生不良影响,又何必去硬要去它呢

------解决方案--------------------
即使将页面的 EnableViewState设置为false,还是存在视图状态的,ASP.NET页面需要使用视图状态存储少量数据来保存页面的控件结构,这段数据是无法移除的
------解决方案--------------------
别人那个是自动生成了HTML 肯定没有嘛
------解决方案--------------------
使用html页面
使用ASP.NET页面,viewsate是存在的
------解决方案--------------------
form,肯定会生成viewstate,如果生成太多的垃圾代码,可以对viewstate进行压缩
------解决方案--------------------
自己写 IHttpHandler 啊
------解决方案--------------------
我以前看到过一篇关于用HtmlTextWrite来清除viewstate的。你可以到网上查查。
------解决方案--------------------
在页面的Render方法里去除
------解决方案--------------------
你试试:

http://blog.csdn.net/mngzilin/archive/2009/12/13/4999411.aspx
------解决方案--------------------
我重新修改下,你再打开看看
------解决方案--------------------
文章少了一句,我重新加上了,不好意思。现在可以了
------解决方案--------------------
不过要注意,清除了viewstate后,不影响页面布局,但是页面的许多事件都触发不了了,这也是一般不清除viewstate的原因,慎用。