ASP.net用户控制噩梦

时间:2010-03-02 01:26:08

标签: asp.net session user-controls window.onunload

我已经实现了一个用户控件,我在几个页面上重用了它。但是,我遇到了各种各样的问题,例如跨页面的会话维护,导航时的会话清除 - 基本上是控制状态维护,我想知道这一切都值得头痛。

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

有关如何解决这个问题的任何提示都不会放弃用户控件吗? 重新使用代码的另一种方法是什么,而不是剥掉一个人的头发? 谢谢!

2 个答案:

答案 0 :(得分:1)

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

听起来你强调会话状态到了它的突破点。您是否考虑过使用ViewState或数据库来管理有状态数据?为什么每次用户导航时都清除会话数据至关重要?

答案 1 :(得分:1)

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