怎样使服务器不发送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还是很长.怎么办?
...全文
177 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧