ASP.NET中C#的当前请求全局变量

时间:2009-11-13 05:46:38

标签: c# asp.net web-applications

我熟悉ASP.NET中的Application和Session Key / Value对象存储。我正在寻找一个全局存储,我可以在发出请求时将值放入,该请求仅在请求期间有效,但业务层中的DLL也可以访问。我被告知有一个HttpRequest对象执行此操作但无法找到更多信息。

用例是单击网页上的一个按钮,导致POST到服务器,然后我会创建一个值,我希望在请求期间填充到内存中,直到我返回HTML给客户。

4 个答案:

答案 0 :(得分:8)

您需要使用HttpContext.Current.Items:

 HttpContext.Current.Items.Add("key", "value");
 string val =  HttpContext.Current.Items["key"] as string;

More info

还有there are issues在线程上下文中存储对象和在asp.net应用程序中的CallContext。在请求期间维护对象的唯一安全选项似乎是HttpContext.Current.Items

答案 1 :(得分:3)

4GuysFromRolla关于使用HttpContext存储每个请求的项目有一个很好的article

答案 2 :(得分:2)

您可以将商品添加到HttpContext.Current.Items

有关详细信息,我建议您阅读3 hot uses for HttpContext.Current.Items THEY Won't tell you about

  

一般来说,HttpContext.Current.Items   没有得到那么热门的博客   按,但让我告诉你,我在这里   改变这一切。对于那些人   知道,   System.Web.HttpContext.Current.Items   是一个甜蜜的键值对集合   你可以用它来传递物体   并通过所有组件   参与一个HTTP请求。

答案 3 :(得分:1)

我相信你正在寻找Page.Context属性,特别是其中的Items集合。