mvc中的OutputCache[通俗易懂]

mvc中的OutputCache[通俗易懂]mvc4中有一个标记属性OutputCache,用来对ActionResult结果进行缓存,如何理解呢?概括地说,就是当你的请求参数没有发生变化时,直接从缓存中取结果,不会再走服务端的Action代码

大家好,又见面了,我是你们的朋友全栈君。

mvc4中有一个标记属性OutputCache,用来对ActionResult结果进行缓存,如何理解呢?概括地说,就是当你的请求参数没有发生变化时,直接从缓存中取结果,不会再走服务端的Action代码了.

1.[OutputCache(Duration=300)]

//事例代码: 
[OutputCache(Duration = 300)] public ActionResult Index(int? id,string name) { var person = new Person { ID = Convert.ToInt16(id), Name = name, City="Beijing"}; return View(person); }

请求此Action的url可以为:  person/Index?id=100&name=”bird”,

当第一次请求这个地址时,会执行Index方法,并把结果缓存起来,且过期时间为300秒

接下来,如果不改变id和name参数的前提下,在距离上次请求300秒  内,再来请求这个地址,不会执行Index方法,直接从缓存中拿结果.

当id或者name的参数值发生变化时,发送请求时,会执行index方法,然后再缓存此结果.

[Output(Duration=300)],这种方法没有指明具体针对哪个参数来缓存,所以默认是针对所有参数,即任何一个参数值发生变化,都会缓存一份.

那么,如果,我想指定具体的参数,进行缓存该如何做呢?请看下一个方案

2.[OutputCache(Duration = 300,VaryByParam=”id”)]

此种方式,指明了缓存是针对哪个参数来做的,即只有当id参数值发生变化的时候,才做缓存,其他机制同第一种.

 

3.对于参数中的缓存时间设置,可以在配置文件中进行配置.

 <caching>
      <outputCacheSettings>
        <outputCacheProfiles>
          <add name="long" duration="50"/>
          <add name="Short" duration="10"/>
        </outputCacheProfiles>
      </outputCacheSettings>
    </caching>

使用:

  [OutputCache(CacheProfile="Short", VaryByParam = "id")]
        public ActionResult Index(int? id, string name)
        {
            var person = new Person { ID = Convert.ToInt16(id), Name = name, City = "Beijing" };
            return View(person);
        }

如此,便于维护和更改.

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155104.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 可以下载离线地图的软件_bt软件下载器

    可以下载离线地图的软件_bt软件下载器百度网盘:https://pan.baidu.com/s/1Nj6NcU1F2Y1f0kP9KgUlxg提取码:bxgh打开百度网盘并解压以后,你得到的东西是这些:第一先点击:MapTileDownloader_Ultimate_1.9.5.ext然后剩下几步都是默认安装就行;注意最后一步:先不要勾选接下来打开你安装的文件(从解压的文件里面把…

    2022年9月20日
    2
  • 前端第二章:8.HTML超链接代码写法;id属性

    前端第二章:8.HTML超链接代码写法;id属性一、超链接介绍0.超链接是行内元素,但是可以放块元素1.从一个页面跳转到另一个页面2.或者跳转到当前页面的其他位置3.href属性的值可以是外部网站,也可以是同一个目录下的地址文件,如xxx.html二、超链接·代码1.超链接写法:<ahref=”你想要跳转到的网址”>超链接的字样</a>2.示例(外部网站和同一个目录下的html都可以写进href名值对结构中):3.浏览器内显示(紫色字样表示你最近访问过,蓝色代表没有访问过):4.

    2022年7月12日
    16
  • zabbix邮箱告警的详细配置

    zabbix邮箱告警的详细配置

    2021年6月6日
    113
  • jquery+json实例

    jquery+json实例

    2021年8月12日
    50
  • laravel 文件上传总结

    laravel 文件上传总结

    2021年11月10日
    41
  • linux常用命令解释_vim常用命令总结

    linux常用命令解释_vim常用命令总结记住,是小写的L,表示使用列表的方式来列出目录中的内容,ls-l这是常用的命令,一般也是可以这里的/是Linux上的特殊目录,称为”根目录”,相当于windows的”此电脑”,这里的这些目录,就相当于”系统文件”他就是能告诉我们当前是在哪个目录里,因为我们在使用命令的时候,有的时候,目录是比较复杂的,容易不记得自己在哪里(迷路了)显示了当前目录所对应的绝对路径,在windows上,就是以盘符开头的路径的绝对路径,在Linux上,是以/开头(根目录)就是绝对路径cd后

    2025年11月22日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号