在HttpModule中,我在上下文中放置了一个Item,如下所示:
HttpContext.Current.Items.Add("MyKey", "Hello world!");
直接在此代码下(仍在模块内),我可以从集合中检索此字符串,因此我知道它已添加。
快进到我的实际处理程序(Web表单 - .aspx)。我试着把这个项目拿回来:
string myString = HttpContext.Current.Items["MyKey"].ToString();
可悲的是,它是NULL - 项目不存在。
我旋转了集合,当它到达我的处理程序时,Items集合有两个键:
在模块中设置项目后,我调用RewritePath。不确定这与它有什么关系。
答案 0 :(得分:0)
不太清楚代码的流程,但尝试使用HttpContext.Items而不是HttpContext.Current.Items集合。查看此链接 - http://odetocode.com/articles/111.aspx
答案 1 :(得分:0)
我的问题是那里有重定向的偷偷摸摸。因此,我设置值的请求和我读取值的请求实际上是两个单独的请求。它变得如此之快以至于我没有注意到,即使在调试时也是如此。