Есть ли простой способ перенаправить всю страницу (а не только частичное представление) на страницу входа после истечения срока действия сеанса?Перенаправить частичный просмотр страницы входа в систему по окончании сеанса
Я попытался следующие решения, но не может заставить его работать:
- .Net MVC Partial View load login page when session expires
- How to redirect full page rather then only partial view changing?
Моя проблема заключается в том, что частичное перенаправляет на Login-странице , а не всю страницу (та же проблема, что и в ссылках).
Контроллер
[HttpPost]
public PartialViewResult LogPartialView(string a, int? b, string c, string d, int? e, string f)
{
//If the user is "Admin" -> display Logs for all customers.
if (Roles.IsUserInRole(WebSecurity.CurrentUserName, "Admin"))
{
if (Session["myID"] == null)
{
ExpireSession();
}
//Some code
return PartialView("LogPartialLayout", model);
}
Я хотел вернуться редирект («~ /»), если MyId является недействительным, но он не работает, так как он ожидает частичный вид.
сообщения об ошибке: Не удается неявно преобразовать тип 'System.Web.Mvc.RedirectResult' до '' System.Web.Mvc.PartialViewResult
public void ExpireSession()
{
Session.Abandon();
WebSecurity.Logout();
Response.Redirect("~/");
}
Изменить подпись вашего метода на: 'public ActionResult LogPartialView (...)' – haim770
@ haim770 Я добавил, если session = null -> Redirect ("~ /") Но он по-прежнему перенаправляется внутри частичного представления. –
@ haim770 .. Я забыл упомянуть, что я перешел на публичный ActionResult, но без успеха. Все еще перенаправляет внутри PartialView. –