在ASP.NET中缓存变量

时间:2011-11-01 10:11:44

标签: asp.net caching

如何在页面级别上缓存ASP.NET中的变量?也就是说,我想缓存在页面加载周期中加载的任何变量,但是一旦页面完全加载,我希望转储该变量。

更新:我希望将数据缓存在服务器上。

4 个答案:

答案 0 :(得分:3)

听起来你只需要在类级声明你的变量,例如:

public class MyPage : Page
{
  private int _classVariable:

  pageLoad()
  {
     _classVariable = 1;
   }
}

除非我遗漏了明显的东西

答案 1 :(得分:2)

在该过程中,page_load中声明的任何变量都将可见,并自动删除。

页面生命周期的其他状态所需的任何内容也可以存储在Session变量(或视图状态,具体取决于访问它的位置),并在完成后删除。

Session["value"] = value;

ViewState["value"] = value;

答案 2 :(得分:1)

你可以使用一本词典

Page.Items["variableName"] = yourObject;

您可以从任何控件或用户控件或自己的​​页面访问它,并将其剪切为整个页面控件树

但是如果你不需要共享对象,或者你只需​​要在make private字段后面的页面代码中的每个请求,它将在下一个请求时设置为默认值,你可以在Page_Load事件上将其更改为任何内容

答案 3 :(得分:1)

您可以缓存current HttpContext中在请求期间可用的项目。

HttpContext.Current.Items["VariableName"] = value;

这将持续生成页面的生命周期,但也可以与代码的其他部分共享,这些部分可能需要与您的页面进行交互(例如,http模块)。