1

在一个 HttpModule 中,我将一个 Item 放在 Context 中,如下所示:

HttpContext.Current.Items.Add("MyKey", "Hello world!");

直接在此代码下(仍在模块内),我可以从集合中检索此字符串,因此我知道它已添加。

快进到我的实际处理程序(Web 表单——.aspx)。我试图取回这个项目:

string myString = HttpContext.Current.Items["MyKey"].ToString();

可悲的是,它是 NULL - 该项目不存在。

我旋转了集合,当它到达我的处理程序时,Items 集合有两个键:

  • 会话
  • AspSessionIDManagerInitializeRequestCalled

在模块中设置 Item 后,我调用 RewritePath。不确定这是否与它有关。

4

2 回答 2

0

不太清楚您的代码流程,但尝试使用 HttpContext.Items 而不是 HttpContext.Current.Items 集合。查看此链接 - http://odetocode.com/articles/111.aspx

于 2011-02-24T15:03:16.500 回答
0

我的问题是重定向潜入了那里。因此,我设置值的请求和读取值的请求实际上是两个单独的请求。它的速度如此之快,以至于我没有注意到,即使在调试时也是如此。

于 2011-09-18T16:09:48.553 回答