当我在webform.aspx中使用下面的代码时,即使停止项目,我也可以获得价值。 但是当我在使用MVC工作时,我无法使用控制器。 你能告诉我为什么吗?
的DateTime? date1 =(DateTime?)HttpContext.Cache [" MyKey"];
if (!date1.HasValue) // date1 == null
{
date1 = DateTime.Now;
HttpContext.Cache.Insert("MyKey", date1, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
}
答案 0 :(得分:0)
如果密钥最初为空,则不能Insert
。试试这个:
date1 = DateTime.Now;
if(HttpContext.Cache["MyKey"] == null){
HttpContext.Cache.Insert("MyKey", date1, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration);
} else {
HttpContext.Cache["MyKey"] = date1;
}
修改强>
int NumberofDaysToCache = 2;
HttpContext.Cache.Insert("MyKey", date1, null, DateTime.Now.AddDays(NumberofDaysToCache),
System.Web.Caching.Cache.NoSlidingExpiration);
答案 1 :(得分:0)
感谢@Dominic 我试图通过MVC ASP.NET 2017将数据保存在缓存中超过一天,我的意思是当我在一天以上关闭系统后,我的缓存仍然存在。 为了测试,如果我关闭visual studio,再次打开我想在缓存中看到值。
在webform.aspx中,我可以这样做,但是在mvc控制器中,当我想使用缓存时,我得到了错误,其中表示缓存是一种类型而不在此上下文中。