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);
        }

如此,便于维护和更改.

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Iris数据集免费下载[通俗易懂]

    Iris数据集免费下载[通俗易懂]CSDN下载的iris数据集都需要积分和币,这里我提供百度云链接免费下载链接:https://pan.baidu.com/s/1ReA5RjAUvph0BYyYIHBlYg提取码:2grr恳请下载好的小伙伴点赞留言,蟹蟹更多AI资源请关注公众号:大胡子的AI欢迎各位AI爱好者加入群聊交流学习:882345565(内有大量免费资源哦!)…

    2022年10月17日
  • unix grep命令_grep命令实例

    unix grep命令_grep命令实例grep一般格式为:grep[选项]基本正则表达式[文件]这里基本正则表达式可为字符串。单引号双引号在grep命令中输入字符串参数时,最好将其用双引号括起来。在调用模式匹配时,应使用单引号。 例如:“mystring”。这样做有两个原因

  • 同济大学计算机夏令营2021,同济大学2021年接收推荐免试研究生(含直接攻博)名单公示…「建议收藏」

    同济大学计算机夏令营2021,同济大学2021年接收推荐免试研究生(含直接攻博)名单公示…「建议收藏」报名参选了同济大学推荐免试的考生们请注意!同济大学2021年接收推荐免试研究生拟录取名单,学校已经发布了!为帮助各位参加了推免的考生及时了解录取结果,医学教育网小编从同济大学研究生院的官网上查找到了“同济大学2021年接收推荐免试研究生(含直接攻博)名单公示”通知内容如下,请同学仔细查看!有问题请及时联系学校!为切实做好推免招生信息公开工作,保证推免工作各个环节公开、透明。按照教育部有关要求,现将…

  • 空洞骑士debug使用教程_debug调试汇编程序

    空洞骑士debug使用教程_debug调试汇编程序

    2022年10月15日
  • python制作自动交易程序_Python如何实现自动化交易

    python制作自动交易程序_Python如何实现自动化交易Python的火热,刺激了市场的需求,在国内某知名互联网招聘网站上,Python开发工程师的年薪普遍在25万-50万之间,岗位数量多达数万。如果你只能选读一门编程语言,那么除了Python,还是Python。要赶上这趟快车不容易,尤其是对于非专业出身的小白来说,面对一堆代码就已经万脸懵逼了,还怎么可能成为Python大牛?今天小蛙就带你抄捷径,从小白到大牛,看看如何在三个月内学会P…

  • Codeforces Round #296 (Div. 2) A. Playing with Paper[通俗易懂]

    Codeforces Round #296 (Div. 2) A. Playing with Paper

发表回复

您的电子邮箱地址不会被公开。

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