• ASP.NET MVC 3 使用页面缓存 OutputCache 需要注意的问题


    项目使用MVC3框架,页面使用缓存来缓解服务器压力,使用缓存配置文件设置CacheProfile

      <system.web>
      ...........<!--其他配置节点-->
     <caching>
          <outputCacheSettings>
            <outputCacheProfiles>
              <add name="index" duration="20" enabled="true" location="Client" varyByParam="city,type"/>
            </outputCacheProfiles>
          </outputCacheSettings>
        </caching>
      </system.web>

    在Action上使用OutputCache特性

    [OutputCache(CacheProfile="index")] 
      public ActionResult Index(string city, string type)
            {
                
                ViewBag.City = city;
                ViewBag.Type = type;
                ViewBag.Message = "欢迎使用 ASP.NET MVC!";
                var queryList = list.Where(c => c.City == city);
                return View(queryList);
            }

    配置和代码完成以后,运行页面。首次页面返回200状态,按 F5后页面还是返回200的状态码,怎么回事呢,页面居然没有被缓存。。。。

    原来这是ASP.NET的一个BUG,如何解决呢?我们可以在Action方法内加 Response.Cache.SetOmitVaryStar(true);这段代码。测试发现配置信息里的属性location配置为"Client"时,缓存并没有生效,页面还是无法被缓存。。。。这个太坑了吧。

    将配置信息里的属性location配置为"ServerAndClient"时,页面才能被缓存。

    <system.web>
    ...........<!--其他配置节点-->
    <caching>
     <outputCacheSettings>
     <outputCacheProfiles>
     <add name="index" duration="20" enabled="true" location="ServerAndClient" varyByParam="city,type"/> 
    </outputCacheProfiles> </outputCacheSettings> </caching> </system.web>
      public ActionResult Index(string city, string type)
            {
                Response.Cache.SetOmitVaryStar(true);
                ViewBag.City = city;
                ViewBag.Type = type;
                ViewBag.Message = "欢迎使用 ASP.NET MVC!";
                var queryList = list.Where(c => c.City == city);
                return View(queryList);
            }
  • 相关阅读:
    企业应用的互联网化(2010年2月)
    Flex的危局,还是HTML5的盛宴?
    在MBP上自由切换显卡
    Django的中文编码问题
    Jenkins+Maven+SVN快速搭建持续集成环境(转)
    解决 phpmyadmin #2002 无法登录 MySQL 服务器
    Spring框架中获得DataSource对象的方法(转)
    jetty 源代码地址
    eclipse中js文件报missing semicolon
    等额本息贷款月付款额的推导公式
  • 原文地址:https://www.cnblogs.com/jeemly/p/4463619.html
Copyright © 2020-2023  润新知