Asp.net mvc 检查页面是否过期,然后重定向
我正在寻找一种方法来检查页面(不是会话)是否过期,如果过期,是否将它们重定向到MVC(4)中的另一个视图?我不希望在页面过期时重新加载页面,而是希望不显示浏览器“This page has expired”(此页面已过期)页面,而是执行类似于重新执行控制器操作的操作,但检查该页面是否已过期 有什么想法吗 更新:代码:Asp.net mvc 检查页面是否过期,然后重定向,asp.net-mvc,Asp.net Mvc,我正在寻找一种方法来检查页面(不是会话)是否过期,如果过期,是否将它们重定向到MVC(4)中的另一个视图?我不希望在页面过期时重新加载页面,而是希望不显示浏览器“This page has expired”(此页面已过期)页面,而是执行类似于重新执行控制器操作的操作,但检查该页面是否已过期 有什么想法吗 更新:代码: public override void OnResultExecuting(ResultExecutingContext filterContext) {
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-60));
filterContext.HttpContext.Response.Cache.SetValidUntilExpires(true);
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
filterContext.HttpContext.Response.Cache.SetNoStore();
filterContext.HttpContext.Response.Cache.SetAllowResponseInBrowserHistory(false);
base.OnResultExecuting(filterContext);
}
我没有看到页面本身呈现任何无缓存或过期属性/标记。不确定是否应该ActionFilterAttribute,设置将在其中过期。我已经完成了此操作,但没有成功。我甚至没有看到页面呈现任何关于无缓存或过期的内容:-/(更新原始帖子以显示代码)为什么是-60?不是应该是60吗?我们想在过去过期,而不是未来如果你在过去过期,那么它总是过期的。甚至拥有这个页面的目的是什么?
//This is a sample for callback on cache expiration.
string test = "test1";
Cache.Insert("Key", test, dependancy, DateTime.Now.AddMinutes(DateTime.Now), System.Web.Caching.Cache.NoSlidingExpiration, CacheItemPriority.High, new CacheItemRemovedCallback(CacheRemovedCallback));
public void CacheRemovedCallback(String key, object value, System.Web.Caching.CacheItemRemovedReason removedReason)
{
//Logs.write = "Cache Expired for : " + key;
RedirectToAction("action","controller");
//You can redirect or do anything else you want.
}