我遇到的问题如下:
我目前有一个自定义类,可以生成按钮并将它们放在母版页上的占位符中。
这些按钮的事件将特定值放入会话中,该会话不同于数据库查询的值。从本质上讲,这些按钮可用作图表的过滤器。
创建完所有按钮后,我意识到会话值将在页面之间保持不变,因此每次用户进入另一个页面而另一个页面打开时,在打开页面上选择的过滤器将保持不变为新页面打开了。
首先,我想使用viewstate而不是session,但后来意识到母版页和内容页不共享同一个viewstate。
目前,我正在考虑使用sesson密钥的前缀来识别过滤器实际存在的页面。但是,如果用户希望同时打开多个页面,我不想用多个值重载会话。
任何需要在app_code,主页和内容页面之间共享viewstate(或其他存储值的方式)的解决方案?
答案 0 :(得分:1)
使用HttpContext.Current.Items,它是一个键值对集合,其生命周期为单个Http请求。
答案 1 :(得分:0)
您考虑过Context.Items吗?
答案 2 :(得分:0)
我们在这里谈多少个过滤器?将过滤器值存储在URL中。您是否看到了谷歌或电子商务网站使用的一些网址?它们很长。我是这样做的:
答案 3 :(得分:0)
答案 4 :(得分:0)
如果数据不是太长,Cookie就是典型的解决方案。
另一种选择是使用Silverlight隔离存储。 Silverlight控件本身可以是不可见的(没有UI)。