惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
C
Check Point Blog
J
Java Code Geeks
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
量子位
Google DeepMind News
Google DeepMind News
I
InfoQ
The GitHub Blog
The GitHub Blog
aimingoo的专栏
aimingoo的专栏
N
Netflix TechBlog - Medium
Hugging Face - Blog
Hugging Face - Blog
博客园 - Franky
V
V2EX
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
小众软件
小众软件
博客园_首页
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
IT之家
IT之家

博客园 - 小张.NET

模仿写了一个摸鱼应用解决原作者的问题 第一屏不显示懒加载的图片内容,这个方法可以搞定 C#多线程中访问winform控件 (解决Winform 对象当前正在其他地方使用) 变化的科技感十足的网站,推荐 新年有感 获取高精度时间注意事项 (QueryPerformanceCounter , QueryPerformanceFrequency) 修改 TeamViewer ID 的方法 VS2017离线安装包[百度云盘](收藏了) 老子今天不加班,程序员也需要自由 改变Eclipse 中代码字体大小 去除 VS.Net 2003 项目的 VSS 息的脚本 字符串截取固定长度的方法(C#) 对路径XXX的访问被拒绝(文件操作权限)的解决方法 安装VS2005 SP1之后无法更改或卸载VS2005的处理方法 VS2005的隐藏快捷键 vs2005的快捷键 反编译工具Reflector下载(集成两个常用.net插件,FileGenerator和FileDisassembler) 强大的.NET反编译工具Reflector及插件 程序员,你离坐牢还有多远 - 小张.NET - 博客园
两种彻底删除VIEWSTATE的方法 - 小张.NET - 博客园
小张.NET · 2007-11-19 · via 博客园 - 小张.NET

2007年08月28日 星期二 14:25

第一种方法:
         第一步,在Web.config文件的Pages配置节点中设置enableViewState="false",或者在每个Aspx页头部设置。完成第一步后,无论如何.Net也会在页面上输出<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="" />这样的内容。
         第二步,将<head runat="server">和<form id="form1" runat="server">中的runat="server"属性删除。完成第二步之后,asp.net默认不会再往客户端输出__VIEWSTATE元素。

第二种方法:
         第一步,同每一种方法中的第一步操作。
         第二步,重写Page类中的LoadPageStateFromPersistenceMedium()和SavePageStateToPersistenceMedium(object state)方法。

Demo:将ViewState存放到Session中:
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;
}