Kaneboy.Web.ViewState使用说明

Kaneboy.Web.ViewState使用说明

(一)概述

Kaneboy.Web.ViewState提供了以多种方式保存ViewState的能力。ASP.NET引擎默认是将ViewState作为页面上一个Hidden Field保存到页面上,但使用Kaneboy.Web.ViewState,我们可以改变ViewState的保存方式。

(二)使用步骤说明:

1、将Kaneboy.Web.ViewState的所有三个dll文件拷贝到正确的Web程序的/bin目录中。

2、修改web.config,在其中增加如下所示的配置节:

<configuration>

 <configSections>
  <section name="viewStateManagement" type="Kaneboy.Web.ViewState.ViewStateManagementConfig, Kaneboy.Web.ViewState" />
 </configSections>
 
 <viewStateManagement>
  <handler mode="on" type="Kaneboy.Web.ViewState.SessionViewStateHandler, Kaneboy.Web.ViewState" />
 </viewStateManagement>

</configuration>

其中<viewStateManagement>节点下的<Handler>节点用来指示使用哪种方式来保存ViewState,以及是否启用自定制的ViewState保存方式。

3、接管页面上默认的ViewState保存方式。你可以选择下面的两种方法之一:

(1)将要改变ViewState保存方式的页面的父类从默认的System.Web.UI.Page改为Kaneboy.Web.ViewState.ViewStatePageBase。

通常一个好的Web程序设计会让系统中所有的页面继承自一个自定义公共基页面类(而不是继承自默认的System.Web.UI.Page),以实现某些自定制的功能(比如所有页面错误的捕捉等等),如果有这样的设计,那么您只需要将这个自定义的公共基页面类继承自Kaneboy.Web.ViewState.ViewStatePageBase即可。

(2)在页面的代码中,override下面所示的两个方法:

protected override void SavePageStateToPersistenceMedium(object viewState)
{
 Kaneboy.Web.ViewState.ViewStateManagement.SaveViewState(this, viewState);
}

protected override object LoadPageStateFromPersistenceMedium()
{
 return Kaneboy.Web.ViewState.ViewStateManagement.LoadViewState(this);
}

(三)可以使用的ViewState保存方式

在上面提到的配置文件中<viewStateManagement>节点下的<Handler>节点的type属性用来指定使用哪种方法来保存ViewState,可以选择的方法包括:

(1) type="Kaneboy.Web.ViewState.CompressedHiddenFieldViewStateHandler, Kaneboy.Web.ViewState"

将ViewState压缩后保存到页面的一个Hidden Field中。

(2) type="Kaneboy.Web.ViewState.SessionViewStateHandler, Kaneboy.Web.ViewState"

将ViewState保存在服务器的Session中。

(3) type="Kaneboy.Web.ViewState.AspNet1_1ViewStateHandler, Kaneboy.Web.ViewState"

系统默认的ViewState保存方式,即将ViewState保存在一个名字为“__VIEWSTATE”的Hidden Field中。不推荐使用这个方法。

(四)如何扩展自定制的ViewState保存方法

通过继承Kaneboy.Web.ViewState.ViewStateHandlerBase,并重写其SaveViewState和LoadViewState方法即可,这两个方法分别用来保存ViewState和载入ViewState。

原文地址:https://www.cnblogs.com/kaneboy/p/2436789.html