zoukankan      html  css  js  c++  java
  • .net mvc禁用浏览器缓存

    我正在寻找方法来禁用 整个 ASP.Net MVC 网站 的浏览器缓存

    我发现以下方法,

    Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
    Response.Cache.SetNoStore();

    此外元标记方法 (它不会为我工作,因为一些 MVC 操作发送部分 html/json 通过 ajax,无头,元标记)

    <meta. http-equiv="PRAGMA" content="NO-CACHE">

    但我正在寻找禁用整个网站的浏览器缓存的简单方法。

    解决方法 1:

    HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1))
    HttpContext.Current.Response.Cache.SetValidUntilExpires(false)
    HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches)
    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache)
    HttpContext.Current.Response.Cache.SetNoStore()

    所有请求获得第一次通过 default.aspx 都路由-因此假定您可以只弹出那里后面的代码中。

    解决方法 2:

    创建一个从 IActionFilter 继承的类。

    public class NoCache : ActionFilterAttribute
    {  
        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
            filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
            filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
            filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
            filterContext.HttpContext.Response.Cache.SetNoStore();

            base.OnResultExecuting(filterContext);
        }
    }

    然后把属性在需要的地方 … …

    [NoCache]
    [HandleError]
    public class AccountController : Controller
    {
        [NoCache]
        [Authorize]
        public ActionResult ChangePassword()
        {
            return View();
        }
    }
  • 相关阅读:
    call和applay
    判断传入的参数是否包含空
    通过函数修改文件中指定字符串
    任一个英文的纯文本文件,统计其中的每个单词出现的个数(注意是每个单词)
    下载进度条实现
    Python 用户登录判断,数据结构-字典
    python 字符串(str)和列表(list)互相转换
    网络编程01
    OpenGL入门学习
    程序的音频输出
  • 原文地址:https://www.cnblogs.com/qinge/p/5563188.html
Copyright © 2011-2022 走看看