为什么我的会话变量在ASP.NET中显示为空?

时间:2009-03-09 11:35:55

标签: asp.net multithreading session

我在ASP.NET网页上有用户控件,其中包含一个GridView和一个单选按钮选择器。

在底层中间层我有一个线程进入数据库,然后引发一个事件说“我有一些数据”我的用户控件处理这个事件并设置一个会话变量。

这有效,我可以看到正在处理的事件,Session变量获取新数据。

然而,当我选择单选按钮选择器的索引更改Session变量报告为“Nothing”时,我将使用此会话变量

我确保明显(即拼写,Sessions等等)是正确的。

GridView和单选按钮选择器封装在同一个“更新”面板中。

2 个答案:

答案 0 :(得分:2)

检查您的UpdatePanel - updatemode是否设置为'Conditional'?还有孩子作为触发器?我首先要在你的页面加载中停止,看看那里发生了什么。搜索填充该会话变量的所有位置并停止。您可能会感到惊讶,我经常发现页面生命周期变得混乱,即使我认为我理解它。 Alt - 发布一些代码,我们可以逐步完成。

答案 1 :(得分:0)

是的,听起来几乎像操作顺序的问题或者没有检查页面加载或其他什么的回发?

像JamesM建议的那样,在调试模式下运行您的网站应该有助于识别问题。您可以调出监视窗口并将其设置为您正在查找的Session变量,然后设置断点并检查每个停靠点的值以划分和征服代码。