• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

怎样使服务器不发送ViewState信息给客户端

freexym 2004-11-05 12:19:16
我把我的问题详细的说一下把.由于客户用GPRS跟Web服务器进行交互.但是由于网速(1-3K,还不太稳定)原因,在交互过程中可能会有数据包丢失的情况,对一般的数据包丢失了也只是客户端浏览显示可能出现问题.但是如果是有关:ViewState_Value的数据包丢掉了.在服务器端验证重组的时候就通不过(或者说是服务器没办法再还原以前的ViewState),这样就会出现"视图状态无效"的错误.所以我希望能有一个办法能让服务器传给客户端的ViewState_Value最小(当然没有更好).我在machine.config,web.config,页面的EnableViewState=false,cs中this.EnableViewState=false都有配置,可是可能是用到TextBoxt等控件的原因客户端浏览器的ViewState还是很长.怎么办?
...全文
120 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhn0410 2004-11-05
占个位学习,并帮你顶一下。
回复
活靶子哥哥 2004-11-05
EnableViewState优先级别:
全局配置 < 程序 < 页< 控件

注意:下列服务器控件不能禁止ViewState

Textbox
Checkbox
Checkbox List
RadioButtonList
上面控件的状态通过IPostBackEventHandler 和 IPostBackDataHandler接口处理,而不是ViewState的机制,所以EnableViewState没有效果。

http://www.zdnet.com.cn/developer/tech/story/0,2000081602,39104144,00.htm
回复
vzxq 2004-11-05
关注
回复
lhcoolhacker 2004-11-05
在web.config中设置
<pages enableViewState="false" />
回复
freexym 2004-11-05
谢谢 sniper81(零度的火) , 2002pine(在深圳真的很累) 的回答,我做的项目里有很多地方都是动态加载控件的,并大量用了TextBox、Checkbox List这些东西,要改写代码比较麻烦,非常麻烦....,要写成asp更是需要海量处理。所以我决定如果没有更好的办法,我会接受微软的建议去劝告客户提高网速,换GPRS为CDMA......
GPRS+ViewState=大型Web程序的恶梦。
回复
105910556 2004-11-05
http://blog.csdn.net/21aspnet/archive/2004/10/30/159975.aspx
回复
freexin 2004-11-05
同意楼上的,不使用服务端控件,直接使用HTML控件+Javascript的方法
回复
2002pine 2004-11-05
1,有多种方法,但要消耗相应的资源
如overload saveviewstate方法,
将viewstate压缩到服务器文件上,或放到session中,或放入到数据库中
回复
sniper81 2004-11-05
使用客户端的<Input type=text>等纯客户端页面元素也会导致ViewState吗?
我觉得像楼主的情况,还是采用以前类似asp的操作方式会不会好些?
在cs文件中,设置一个页面级别的变量,比如叫ctrlValues,将各个控件的ID和值作为键值对拼成字符串,比如“ctrl1:value1|ctrl2:value2”这样的,赋给那个变量,然后客户端写一个通用的脚本,将其拆散并填入控件,脚本类似下面的:
<script language=javascript>
function SetCtrlValues()
{
var content="<%Response.Write(ctrlValues);%>";
var items,cells;
items=content.split("|");
for (var i=0;i<items.length;i++)
{
cells=items[i].split(":");
document.getElementById(cells[0]).value=cells[1];
}
}
</script>
希望这种方式可以避过ViewState机制,用类似asp的操作方式,可能都不需要form的runat=server属性,这样可能彻底避免ViewState吧?
回复
rickjelly2004 2004-11-05
EnableViewState
回复
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2004-11-05 12:19
社区公告
暂无公告