Мне нужно перенаправить на домашнюю страницу после тайм-аута сеанса в приложении mvc 5. Я использую следующий код:
public class SessionExpireAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var currentEnvironment = EnvironmentUtility.GetSession().Get<Environment>();
if (currentEnvironment == null)
{
filterContext.Result = new RedirectResult("~/Home/Index");
}
base.OnActionExecuting(filterContext);
}
}
В контроллере у меня есть код ниже:
[SessionExpire]
public ActionResult Submit()
{
var urlReferrer = this.Request.UrlReferrer;
if (urlReferrer != null)
{
return this.Redirect(urlReferrer.ToString());
}
else
{
return View();
}
}
После нажатия кнопки отправки страница перенаправляется на другую страницу с использованием кода javascript, как показано ниже:
function commitButtonClickedHandler()
{
window.location.href = "@Url.Content("~/Working/NextPage")";
}
И NextPage выглядит следующим образом:
public ActionResult NextPage()
{
return this.View();
}
Каково мое требование после тайм-аута сеанса, когда вы нажимаете кнопку отправки, он должен проверять истечение сеанса. Если он просрочен, то его следует перенаправить на NextPage, как в SessionExpireAttribute. В противном случае он должен продолжить процесс. Но проблема заключается в том, что после тайм-аута сеанса страница все еще перенаправляется на действие NextPage(). Пожалуйста, помогите мне исправить это. Спасибо.