一、首先谈一下服务器端 ViewState 的好处和弊端

1.服务器端 ViewState 的好处
1).避免了网络故障带来的 ViewState 传输错误问题
2).避免了浏览器版本带来的 HiddenFiled 大小限制的问题
3).减少了传送至客户端的页面大小——因为 ViewState 存储在服务器 

2.服务器端 ViewState 的弊端
1).占用大量的服务器端硬盘空间

二、服务器端 ViewState 的具体实现

建立一个继承自 System.Web.UI.Page 的  XViewStateFilesPage 类,代码如下:

服务器端 viewstateusing System;
服务器端 viewstate
using System.IO;
服务器端 viewstate
using System.Text;
服务器端 viewstate
using System.Web.UI;
服务器端 viewstate
服务器端 viewstate
namespace XanaduSoft.Web.UI
}

三、“服务器端 ViewState”方案的实施

只要是项目中的所有页面都继承自 XanaduSoft.Web.UI.XViewStateFilesPage 即可。之后在项目的根目录下会自动创建一个 PersistedViewState 文件夹用于保存各个页面的 ViewState。

四、对于“占用大量的服务器端硬盘空间”的解决方案

对于服务器端 ViewState 占用过多服务器端硬盘空间的问题。我们可以有两种解决方法:

  1. 定期手动删除
  2. 创建 HttpModules 用于定期删除 ViewState 文件,代码如下:
服务器端 viewstateusing System;
服务器端 viewstate
using System.IO;
服务器端 viewstate
using System.Web;
服务器端 viewstate
using System.Threading;
服务器端 viewstate
服务器端 viewstate
namespace XanaduSoft.Web.HttpModules
}

编译命令行
csc /target:library /optimize /out:D:\XanaduSoft.Web.HttpModules.dll D:\XViewStateFilesCleanUpHttpModule.cs

应用方法(在Web.config中添加一下代码)
<httpModules>
 <add name="ssafrs" type="XanaduSoft.Web.HttpModules.XViewStateFilesCleanUpHttpModule,XanaduSoft.Web.HttpModules" />
</httpModules>

 

相关文章: