我想将我的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);
}
但是这会基本上停止每个请求的每个页面的缓存。 我相信有办法通过路由或过滤器来做到这一点?也许一个方法注释?有人可以解释一下吗?
答案 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();
}
}