HTTPContext.Current问题 - 我正确使用它吗?

时间:2012-05-24 14:57:32

标签: c# httpcontext

我感觉我正在使用HttpContext.Current错误,基于一些奇怪的代码输出。

我有两个页面,http://example.com/Foo.aspxhttp://example.com/Bar.aspx。两者都有一个按钮,当单击它时,会调用Page的上下文之外的类中的静态函数,该函数通过电子邮件发送给我.System.Web.HttpContext.Current.Request.Url.AbsolutePath就像静态函数看到的那样。

我希望当发送Foo.aspx上的按钮时,它会通过电子邮件发送给我“/Foo.aspx”......通常它会发送给我。我们注意到有一次来自Foo.aspx的电话意外地给我们发了“/Bar.aspx”。

两个页面都可以由同一个客户端加载。

  • 这里发生了什么? HttpContext.Current.Request如何返回与调用引用它的静态函数的页面不同的路径?
  • 我怎样才能得到我想要的东西 - 即,不断获得调用关注它的静态函数的页面的绝对路径?

2 个答案:

答案 0 :(得分:2)

  • 我理解它的方式,你正确使用当前的上下文。它应该始终是请求的URL。如果您执行了类似Server.Transfer的操作,您可能最终会遇到网址与当前正在执行的网页不匹配的情况(但我认为我没有尝试过这种情况)。
  • 您可以使用自己的名称传递页面。

答案 1 :(得分:0)

HttpContext.Current.Request将返回正在处理您的请求的线程的正确路径(即使ASP.NET将请求处理切换到另一个线程)。你确定你在同一个线程中调用它吗?你是否100%确定你在相同或类似的时间没有得到另一个Foo.aspx的请求?