首页 > 后端开发 > C++ > 如何防止 ASP.NET MVC 操作中的缓存?

如何防止 ASP.NET MVC 操作中的缓存?

DDD
发布: 2025-01-14 15:16:43
原创
275 人浏览过

How to Prevent Caching in ASP.NET MVC Actions?

使用属性抑制 ASP.NET MVC 操作中的缓存

挑战:

在 ASP.NET MVC 应用程序中,您经常需要阻止特定操作缓存数据,以确保您始终检索到最新信息。

解决方案:

1。禁用 jQuery 缓存:

要阻止 jQuery 缓存 AJAX 响应,请在 AJAX 设置中使用 cache: false 选项:

<code class="language-javascript">$.ajax({
    cache: false,
    // ... rest of your AJAX configuration
});</code>
登录后复制

2。实现自定义 NoCache 属性:

为了更精确的控制,请创建自定义属性来管理 MVC 操作中的缓存:

<code class="language-csharp">[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class NoCacheAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        // Configure HTTP headers to disable caching
        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);
    }
}</code>
登录后复制

3。应用 NoCache 属性:

将属性应用于不需要缓存的控制器或单个操作:

<code class="language-csharp">[NoCache]
public class SomeController : Controller
{
    // Controller actions
}</code>
登录后复制

4。全局缓存预防:

对于站点范围的方法,将 NoCache 属性应用于您的基本控制器类:

<code class="language-csharp">[NoCache]
public class ControllerBase : Controller, IControllerBase
{
    // Controller actions
}</code>
登录后复制

5。浏览器缓存刷新:

实施这些更改后,请记住在浏览器中执行硬刷新 (Ctrl F5) 以清除任何现有的缓存数据并查看更新的结果。

以上是如何防止 ASP.NET MVC 操作中的缓存?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板