加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 在ASP.NET-MVC3中缓存数据有什么变化吗?

发布时间:2020-12-16 03:58:00 所属栏目:asp.Net 来源:网络整理
导读:我需要在我的MVC3项目中使用应用程序级缓存. 我想在控制器中使用这样的东西: using System.Web.Caching; protected IMyStuff GetStuff(string stuffkey){ var ret = Cache[stuffkey]; if (ret == null) { ret = LoadStuffFromDB(stuffkey); Cache[stuffkey]
我需要在我的MVC3项目中使用应用程序级缓存.

我想在控制器中使用这样的东西:

using System.Web.Caching;    

protected IMyStuff GetStuff(string stuffkey)
{
    var ret = Cache[stuffkey];
    if (ret == null)
    {
        ret = LoadStuffFromDB(stuffkey);
        Cache[stuffkey] = ret;
    }
    return (IMyStuff)ret;
}

这会失败,因为Cache [“foo”]不能编译为“System.Web.Caching.Cache是??’type’,而是像’变量’一样使用”.

我看到Cache是??一个类,但是在控制器中像Session [“asdf”]一样使用它时,网上有很多例子,就像它是一个属性一样.

我究竟做错了什么?

解决方法

控制器中有一个名为Session的属性,但没有名为Cache的属性.
您应该使用HttpRuntime.Cache静态属性来获取Cache对象.
例如:

using System.Web.Caching;    

protected IMyStuff GetStuff(string stuffkey)
{
    var ret = HttpRuntime.Cache[stuffkey];
    if (ret == null)
    {
        ret = LoadStuffFromDB(stuffkey);
        HttpRuntime.Cache[stuffkey] = ret;
    }
    return (IMyStuff)ret;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读