当前位置: 首页 > 编程语言 > C#

aspmvc中如何清除指定控制器中的缓存?分享

时间:2023-04-10 15:58:37 C#

aspmvc中如何清除指定控制器的缓存?可能重复:如何以编程方式清除控制器操作方法的输出缓存如何清除指定控制器中的缓存?我尝试使用几种方法:Response.RemoveOutputCacheItem();Response.Cache.SetExpires(DateTime.Now);没有任何影响,它不起作用。:(有没有办法获取控制器缓存中的所有键并显式删除它们?我应该在哪个重写方法中执行清除缓存?怎么做?有什么想法吗?试试这个:把它放在你的模型上:公共类NoCache:ActionFilterAttribute{公共覆盖无效OnResultExecuting(ResultExecutingContextfilterContext){filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));filterContext.HttpContexta.Response.CSetValidUntilExpires(false);filterContext。HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);(filterContext);}}在您的特定控制器上:例如:[NoCache][Authorize]publicActionResultHome(){////////...}来源:原始代码你试过了吗[OutputCache(NoStore=true,Duration=0,VaryByParam="*")]publicActionResultDontCacheMeIfYouCan(){}如果这样不适合你,那么MarkYu建议的自定义属性。试试这个:以上是C#学习教程:如何在aspmvc中清除指定控制器中的缓存?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——publicvoidClearApplicationCache(){Listkeys=newList();//检索应用程序缓存枚举器IDictionaryEnumeratorenumerator=Cache.GetEnumerator();//复制缓存中当前存在的所有键while(enumerator.MoveNext()){keys.Add(enumerator.Key.ToString());}//deleteeverykeyfromcachefor(inti=0;i本文摘自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除,如有转载请注明出处: