1

我已经实现了一个用户控件,可以在多个页面上重复使用。但是,我遇到了各种各样的问题,例如跨页面的会话维护、导航时的会话清除——本质上是控制状态维护,我想知道这一切都值得头疼。

每次加载页面时,都会向其中添加一个控件,如果适用,我会使用 session 重新创建其状态。当我离开一个页面时,我使用 web 方法通过 javascript window.onunload 清除会话。Window.onunload 在新的 page_load 事件之后执行给我带来了麻烦,因此造成了一种非常难以处理的情况。

关于如何在不放弃用户控件的情况下解决此问题的任何提示?重用代码而不扯掉头发的另一种方法是什么?谢谢!

4

2 回答 2

1

这是一个常见的头痛。根据我所看到的所有文献以及我自己的个人经验,通过 javascript 或任何其他方式依赖清算会话是不切实际的。Session 状态的概念覆盖在 HTTP 之上;它从来没有打算成为会话感知的。

听起来您正在强调 Session 状态到它的临界点。您是否考虑过使用 ViewState 或数据库来管理有状态数据?为什么每次用户离开时清除会话数据很重要?

于 2010-03-02T01:37:05.507 回答
1

我解决了托管用户控件的页面上使用 IsPostBack 的问题。这样每次页面不是回发的结果时,都会初始化用户控件的状态变量。

于 2010-03-02T01:56:20.990 回答