Asp.net 禁用所有浏览器上的缓存

Asp.net 禁用所有浏览器上的缓存,asp.net,vb.net,caching,cross-browser,Asp.net,Vb.net,Caching,Cross Browser,我正在使用ASP.NETVB。我正试图通过网站禁用缓存,因为我的客户遇到了一个问题,他需要清除缓存以使系统正常工作 我把这一串代码放在我的主页上 Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache) Response.Cache.SetNoStore() Response.Cache.SetAllowResponseInBrowserHistory(True) 并在这里访问我的chrome缓存。chrome://

我正在使用ASP.NETVB。我正试图通过网站禁用缓存,因为我的客户遇到了一个问题,他需要清除缓存以使系统正常工作

我把这一串代码放在我的主页上

Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache)
Response.Cache.SetNoStore()
Response.Cache.SetAllowResponseInBrowserHistory(True)
并在这里访问我的chrome缓存。chrome://cache/


第一个问题是,这是取消缓存的正确方法吗?接下来,我假设把它放在母版页上会让所有的页面都受到影响,这是正确的假设吗?最后,我如何知道此代码是否正常工作/我的浏览器是否仍在存储缓存以检查代码是否正确。有什么想法吗?谢谢

只需一行代码就可以工作

 Response.CacheControl = "no-cache";
但从缓存中删除现有页面是一种很好的做法

Response.ExpiresAbsolute=DateTime.Now.AddDays(-1d);
Response.Expires =-1500;
Response.CacheControl = "no-cache";
您可以在页面加载时检查页面是否过期

     protected void Page_Load(object sender, EventArgs e)
            {

            if (Page.IsPostBack)
             {
                    if (pageIsExpired()){
                       Response.Redirect("/Some_error_page.htm");
                    }
                    else {
                       var now = Now;
                       Session("TimeStamp") = now.ToString();
                       ViewState("TimeStamp") = now.ToString();
                    }
        }
}



      private boolean pageIsExpired()
      {
         if (Session("TimeStamp") == null || ViewState("TimeStamp") == null)
            return false;

         if (Session("TimeStamp") == ViewState("TimeStamp"))
            return true;

            return false;
      }

来源:

你最好弄清楚为什么你的客户需要清理他的缓存并修复它。是的。但忽略了这种情况。你对我的问题有什么回答吗?谢谢我尝试了这段代码,并将其放在我的母版页上,然后单击“上一步”。页面仍在那里。是的,伙计,页面将在那里。您只是禁用缓存,而不是停止再次呈现页面。因此,在加载时将它们放在母版页上可以吗?谢谢