在特定页面的ASP.NET中没有设置缓存?

时间:2015-04-28 11:19:29

标签: c# asp.net asp.net-mvc caching httpcontext

我想将我的MVC 5应用程序设置为不缓存我的登录视图的页面(即如果我的用户在浏览器中按下了' Back'我希望实际重新加载登录视图导航到登录页面。)

这样我就可以在用户尝试以其他人身份登录之前将当前用户注销。

我在Global.asax中看到了一个使用它的人的例子:

protected void Application_BeginRequest()
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
    Response.Cache.SetNoStore();
    Response.Cache.SetProxyMaxAge(new TimeSpan(0, 0, 0));
    Response.Cache.SetValidUntilExpires(false);
    Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
}

但是这会基本上停止每个请求的每个页面的缓存。 我相信有办法通过路由或过滤器来做到这一点?也许一个方法注释?有人可以解释一下吗?

1 个答案:

答案 0 :(得分:1)

为什么不将这些属性添加到您的操作中:

[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)] 

示例:

public class MyController : Controller
{
    [OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)] 
    // will disable caching for Index only
    public ActionResult Index()
    {
       return View();
    }
}