MVC的缓存管理无法保持价值

时间:2017-05-09 15:50:23

标签: asp.net-mvc-3 caching model-view-controller

当我在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);
        }

2 个答案:

答案 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控制器中,当我想使用缓存时,我得到了错误,其中表示缓存是一种类型而不在此上下文中。