问题描述
A页面在Page_Load获取datatable后,放入缓存HttpContext.Current.Cache.Insert("key",dt);为什么在另一个B.cs文件中取不到datatable缓存?B.cs:DataTabledt=(DataTable)HttpContext.Current.Cache["key"];为什么dt为null?
解决方案
解决方案二:
页面?HTTP不是无状态协议不会保持数据的,可以又文件进行缓存啊。
解决方案三:
B在访问的时候,A还没有放入
解决方案四:
A页面是aspx文件,B是类文件
解决方案五:
你使用的是System.Web.HttpContext.Current.Cache,是存放在当前上下文对象中,表示“为当前HTTP请求获取Cache对象”,而你在另外一个页面去取Cache,并不是当前请求了,所以取不到。你应该使用HttpRuntime.Cache
解决方案六:
net4.0推荐用System.Runtime.CachingMemoryCache.Default自己搜索一下用法
解决方案七:
Insert的时候,dt是否为null?
解决方案八:
干脆直接用静态变量好了如果这个是全局的话
解决方案九:
多说一点,用缓存之前必须要了解存储的对象一定是可序列化的
时间: 2024-11-10 05:33:19