使用属性抑制 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中文网其他相关文章!