栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

防止使用属性在ASP.NET MVC中缓存特定操作

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

防止使用属性在ASP.NET MVC中缓存特定操作

为了确保JQuery不会缓存结果,请在您的ajax方法上放置以下内容:

$.ajax({    cache: false    //rest of your ajax setup});

为了防止在MVC中进行缓存,我们创建了自己的属性,您可以这样做。这是我们的代码:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]public sealed class NoCacheAttribute : 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]
。或为所有目的做到这一点,您只需将属性放在继承您的控制器(如果有)的基类的类上,就像我们在这里:

[NoCache]public class Controllerbase : Controller, IControllerbase

如果您需要某些动作不可缓存,则也可以用此属性来装饰某些动作,而不是装饰整个控制器。

如果您的类或动作

NoCache
在浏览器中呈现时没有,并且您想检查它是否正常工作,请记住,编译更改后,您需要在浏览器中执行“硬刷新”(Ctrl +
F5)。在执行此操作之前,浏览器将保留旧的缓存版本,并且不会使用“正常刷新”(F5)刷新它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430471.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号