如何在页面级别上缓存ASP.NET中的变量?也就是说,我想缓存在页面加载周期中加载的任何变量,但是一旦页面完全加载,我希望转储该变量。
更新:我希望将数据缓存在服务器上。
答案 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模块)。