让.aspx页面里没有

asimplefire 2009-07-18 11:04:35
网上,有不少的大型的.net网站,例如:当当,csdn论坛等,然而这些网站的.aspx页面里,在打开源文件查看,发现不了<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTA4MDgzODk0NQ9kFgJmD2QWAgIHD2QWAgIDD2QWAgIBD2QWBAIBDw8WAh4JTWF4TGVuZ3BE1vZGULKiVTeXN0......
这些记录服务控件状态的代码。不知道是如何处理的!
在网站也查找了不少方法的,仅仅加上EnableViewState="false"也还是有少量的,并且不能与服务器交互!
什么样的方式最好,把整个隐藏控件都给去掉,并且能与服务器交互!
有demo没?
谢谢!
...全文
834 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
llsheng2010 2011-07-25
  • 打赏
  • 举报
回复
顶!!!!!!!!!!!!!
watsonchia 2009-07-19
  • 打赏
  • 举报
回复
原来6楼已经答了,不过我怎么删不了自己的帖子。。。
watsonchia 2009-07-19
  • 打赏
  • 举报
回复
去掉<form runat="server">就不会出现这些viewstat代码了。
当然,也就不能进行本页面内的回发,不能使用大多数的服务端控件,但是repeater可以用。

要根据具体情况进行取舍,有复杂表单的页面我觉得还是应该使用viewstate的。
指间、魔法师 2009-07-19
  • 打赏
  • 举报
回复

收藏咯~
chen_ya_ping 2009-07-19
  • 打赏
  • 举报
回复
那也可以全部用Html控件+AJAX来实现你要求的功能
shenweiblue 2009-07-19
  • 打赏
  • 举报
回复
ding
asmallbee 2009-07-19
  • 打赏
  • 举报
回复
看看
wuyq11 2009-07-19
  • 打赏
  • 举报
回复
wuyq11 2009-07-19
  • 打赏
  • 举报
回复
value保存了控件状态和值,采用Base64编码方式保存
在Web.config文件的Pages配置节点中设置enableViewState="false",或者在每个Aspx页头部设置。

将<head runat="server">和<form id="form1" runat="server">中的runat="server"属性删除。asp.net默认不会再往客户端输出 __VIEWSTATE元素。


重写Page类中的LoadPageStateFromPersistenceMedium()和SavePageStateToPersistenceMedium(object state)方法。

protected LosFormatter losFormatter;

protected override object LoadPageStateFromPersistenceMedium()
{
string key = Request.RawUrl + "__viewstate";

if (Session[key] != null)
{
MemoryStream stream = (MemoryStream)Session[key];
stream.Seek(0, SeekOrigin.Begin);
return losFormatter.Deserialize(stream);
}

return null;
}

protected override void SavePageStateToPersistenceMedium(object state)
{
string key = Request.RawUrl + "__viewstate";

MemoryStream stream = new MemoryStream();

losFormatter.Serialize(stream, state);

stream.Flush();

Session[key] = stream;
}

重写Page类中的LoadPageStateFromPersistenceMedium()和SavePageStateToPersistenceMedium(object state)方法。
douzexin1111 2009-07-19
  • 打赏
  • 举报
回复
帮顶!
BernardSun 2009-07-19
  • 打赏
  • 举报
回复
用HTML控件加上runat="server"
xion 2009-07-19
  • 打赏
  • 举报
回复
这个应该不能把... 生成静态网页或者用ajax技术, 服务端用.net来完成.
bwangel 2009-07-18
  • 打赏
  • 举报
回复
ViewState可以有办法放在服务器端的.

另外,你说的那些网站,应该不是用了常规的方法,估计是整个生成HTML的

62,025

社区成员

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

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

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

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