在哪里设置no-cache标头 - 在页面加载或页面init(在.net中)

时间:2013-09-30 08:45:32

标签: asp.net header browser-cache

我的网页使用无缓存机制,不让浏览器缓存内容。但是,我有些疑惑。开发人员没有在MasterPage中的PageLoad方法中插入缓存代码。

就像这样(在母版页上加载页面

   HttpContext.Current.Response.CacheControl = "no-cache"
   HttpContext.Current.Response.AddHeader("Pragma", "no-cache")
   HttpContext.Current.Response.ExpiresAbsolute = DateTime.Now.Date
   HttpContext.Current.Response.Expires = -1

我怀疑这是正确的行动,是否应该更好地插入BasePage OnInit事件?

1 个答案:

答案 0 :(得分:2)

您可以在生成响应之前执行此HTTPHeader。 Check MSDN

Page_init/page_loadMasterPage/BasePage/ActualPage

参考Disabling browser caching for all browsers from ASP.NET

您也可以在页面指令

中执行此操作
<%@ OutputCache Duration="60" VaryByParam="None"%>

即使在Web.config中,您也可以配置

<caching>
  <outputCacheSettings>
    <outputCacheProfiles>
      <add name="Cache30Seconds" duration="30" 
        varyByParam="none" />
    </outputCacheProfiles>
  </outputCacheSettings>
</caching>

More Information on Caching