У меня есть атрибут SessionEndAttribute, который проверяет, жив ли сеанс. Он прикреплен к каждому действию.Переадресовать на новую страницу
Если сеанс истекло, он работает этот метод:
public override void OnActionExecuting(ActionExecutingContext filterContext) {
// do logout, clear cookies
filterContext.Result = new RedirectToRouteResult(..)
}
Но иногда ответ не маршрут на новую страницу (например, маршрут «/ Account/Login»), а просто всплывающее окно или частичное который может быть только контейнером div.
Итак, вопрос в том, как я могу всегда перенаправлять на новую страницу?
Вы должны сказать конкретную actionfilter для выполнения только полных действий контроллера, а не действий частичного контроллера '[ChildActionOnly]'. Вы также должны убедиться, что все ваши вызовы AJAX используют вызовы '[ChildActionOnly]'. Прошло немного времени с тех пор, как я коснулся MVC, но это путь, который я бы спустил. там должно быть логическое свойство в контексте] (http://stackoverflow.com/questions/8060979/in-asp-net-mvc-3-what-is-filtercontext-ischildaction), 'isChildAction' или' ChildActionOnly' чтобы помочь вам. –
@GeorgeStocker благодарит вас за полезный комментарий! –