ASP.. NET PageViewState会话状态持久性
本文关键字:持久性 会话状态 PageViewState NET ASP | 更新日期: 2023-09-27 18:11:48
我就是这么做的
- 在colibrary下创建了一个新文件夹。
- 命名为"Adapters" 在"Adapters"下面创建一个新的类文件。
- 类文件命名为" PageStateAdapter.cs "
- 从" PageStateAdapter.cs "中的PageAdapter类扩展
- 为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);
}
}
}
- 在Web->App-Browsers 下创建浏览器文件
在浏览器中添加了以下内容。命名文件为" 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>
确保adapterType属性与为Page State Adapter创建的类命名空间匹配
由于一些奇怪的原因,这段代码只在Chrome中不起作用。当我说不工作,我的意思是,页面加载良好,但视图状态是大混乱,它是。但是,在IE和Firefox中,视图状态较小,页面加载速度更快。
我做的下一件事是加载页面在Fiddler下不同的用户代理,如果用户代理是chrome那么相同的混乱的视图状态出现。
我已经检查了代码多次,我写了一个示例站点进行测试。这在Chrome上工作得很好。我真不知道该去哪里找。
我修复了这个问题。对于一个老问题,代码正在清除所有适配器。我修改了它,以便修复只清除那些需要的适配器。