ASP.. NET PageViewState会话状态持久性

本文关键字:持久性 会话状态 PageViewState NET ASP | 更新日期: 2023-09-27 18:11:48

我就是这么做的

  1. 在colibrary下创建了一个新文件夹。
  2. 命名为"Adapters"
  3. 在"Adapters"下面创建一个新的类文件。
  4. 类文件命名为" PageStateAdapter.cs "
  5. 从" PageStateAdapter.cs "中的PageAdapter类扩展
  6. 为GetStatePersister()添加覆盖,如下所示。
代码:

using System.Web.UI;
using System.Web.UI.Adapters;
namespace eRecruitCore.Adapters
{
   public class PageStateAdapter : PageAdapter
   {
       public override PageStatePersister GetStatePersister()
       {
           return new SessionPageStatePersister(this.Page);
       }
    }
 }
  1. 在Web->App-Browsers
  2. 下创建浏览器文件
  3. 在浏览器中添加了以下内容。命名文件为" Default.browser "

    <browsers>
    <browser refID="Default">
      <controlAdapters>
      <adapter controlType="System.Web.UI.Page" adapterType="Corelibrary.Adapters.PageStateAdapter" />
    </controlAdapters>
    <capabilities>
      <capability name="requiresControlStateInSession" value="true" />
    </capabilities>
    </browser>
    </browsers>
    
  4. 确保adapterType属性与为Page State Adapter创建的类命名空间匹配

由于一些奇怪的原因,这段代码只在Chrome中不起作用。当我说不工作,我的意思是,页面加载良好,但视图状态是大混乱,它是。但是,在IE和Firefox中,视图状态较小,页面加载速度更快。

我做的下一件事是加载页面在Fiddler下不同的用户代理,如果用户代理是chrome那么相同的混乱的视图状态出现。

我已经检查了代码多次,我写了一个示例站点进行测试。这在Chrome上工作得很好。我真不知道该去哪里找。

ASP.. NET PageViewState会话状态持久性

我修复了这个问题。对于一个老问题,代码正在清除所有适配器。我修改了它,以便修复只清除那些需要的适配器。