【发布时间】:2018-10-17 08:05:48
【问题描述】:
我正在开发具有 OnResultExecuted 过滤器的 MVC5 应用程序,该过滤器将响应缓存设置为始终“无缓存无存储”:
public class NoCacheActionFilter : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
HttpCachePolicyBase cache = filterContext.HttpContext.Response.Cache;
DateTime now = DateTime.UtcNow;
cache.SetCacheability(HttpCacheability.NoCache);
cache.SetExpires(now.AddDays(-1));
cache.SetNoStore();
base.OnResultExecuted(filterContext);
}
}
但是我有一个 Action 需要缓存它的结果,所以我在它上面设置了 OutputCahce 属性。
[OutputCache(Duration =300, Location =System.Web.UI.OutputCacheLocation.Client)]
但是,由于过滤器,它永远不会被缓存。
我的问题是,是否有办法避免仅针对该操作进行过滤。
谢谢。
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-5 action-filter