新加载页面而不是缓存

时间:2011-05-16 12:44:04

标签: asp.net-mvc-3 browser-cache

有没有办法可以强制页面不从缓存加载?每次加载页面时都会从服务器加载。 我正在使用asp.net MVC 3。

1 个答案:

答案 0 :(得分:12)

您可以使用自定义无缓存操作过滤器:

public class NoCacheAttribute : ActionFilterAttribute
{  
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        var cache = filterContext.HttpContext.Response.Cache;
        cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        cache.SetValidUntilExpires(false);
        cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        cache.SetCacheability(HttpCacheability.NoCache);
        cache.SetNoStore();
        base.OnResultExecuting(filterContext);
    }
}

然后使用您不希望被客户端浏览器缓存的此属性修饰任何控制器/操作。