asp.net – 处理缓存和浏览器后退按钮的最佳方法是什么?

处理用户返回到在asp.net应用程序中缓存项目的页面的最佳方法是什么?有没有一种很好的方法来捕获后退按钮(事件?)并以这种方式处理缓存?

解决方法

如果有帮助,您可以尝试使用 HttpResponse.Cache property
Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(false);
Response.Cache.varyByParams["Category"] = true;

if (Response.Cache.varyByParams["Category"])
{
   //...
}

或者可以使用HttpResponse.CacheControl完全阻止页面的缓存,但是它已经被弃用,而不是上面的Cache属性

Response.CacheControl = "No-Cache";

编辑:或者你真的可以go nuts并且手动完成所有操作:

Response.ClearHeaders();
Response.AppendHeader("Cache-Control","no-cache"); //HTTP 1.1
Response.AppendHeader("Cache-Control","private"); // HTTP 1.1
Response.AppendHeader("Cache-Control","no-store"); // HTTP 1.1
Response.AppendHeader("Cache-Control","must-revalidate"); // HTTP 1.1
Response.AppendHeader("Cache-Control","max-stale=0"); // HTTP 1.1 
Response.AppendHeader("Cache-Control","post-check=0"); // HTTP 1.1 
Response.AppendHeader("Cache-Control","pre-check=0"); // HTTP 1.1 
Response.AppendHeader("Pragma","no-cache"); // HTTP 1.1 
Response.AppendHeader("Keep-Alive","timeout=3,max=993"); // HTTP 1.1 
Response.AppendHeader("Expires","Mon,26 Jul 1997 05:00:00 GMT"); // HTTP 1.1

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....