【问题标题】:Do I need declare that I don't want to cache it using 'OutputCacheLocation.None'?我是否需要声明我不想使用“OutputCacheLocation.None”来缓存它?
【发布时间】:2012-04-23 04:36:51
【问题描述】:

我经常在网络上看到“OutputCacheLocation.None”,例如以下网站。
http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspx

而且我想知道是否应该声明它,即使我没有明确表示要缓存它。

【问题讨论】:

    标签: c# asp.net asp.net-mvc-3 c#-4.0


    【解决方案1】:

    不,没有必要。我至少不会使用它。

    我一直在写:

    [OutputCache(NoStore=true, Duration=0)]
    public ActionResult MyAction()
    {
    }
    

    但是,我从未尝试排除其中一个属性。 NoStore 可能就够了。

    【讨论】:

    • 以防万一,你写OutputCache?
    • 仅当我不想缓存项目或自定义缓存时(例如为每种语言创建一个缓存项目)
    【解决方案2】:

    OutputCacheLocation 默认设置为 Any:

    http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx

    【讨论】:

    • 谢谢。我看到属性“位置”的默认值为“任何”。但是 OutputCache 本身呢。
    【解决方案3】:

    这不是为 MVC3 设置缓存策略的唯一方法。

    您也可以将其应用于操作级别。或者,直接写入响应:

    response.setHeader( "Pragma", "no-cache" );
    response.setHeader( "Cache-Control", "no-cache" );
    response.setDateHeader( "Expires", 0 );
    

    在此处查看更多信息: http://www.codeguru.com/csharp/article.php/c18745/ASPNET-MVC3-Caching.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-16
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 2021-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多