现在,当有人注销时,我会转到注销动作网址,从哪个网页开始。但问题是,我不能解除控制器的url动作,他在那里按下退出。
例如,用户在页面上
site.com/cabinet/home/index
并按此处按下url:
site.com/Account/LogOut/?returnURL=/cabinet/home/index
public ActionResult LogOut(string returnURL)
{
// Need to RedirectToAction(...)
return Redirect(returnURL);
}
所以,如果我将他重定向到returnURL-在我的控制器中不会发生任何事情(即使不在控制器中, - 在View中,这将被重新绘制为非协作用户(不是auth的相同界面而不是auth用户)。) / p>
那么,我应该提取控制器,动作,区域(?),参数并且只有在这之后才能生成RedirectToAction吗?或者当你只知道url时,还有其他任何让控制器被触发的方法吗?
THX。
答案 0 :(得分:0)
:
@using (Html.BeginForm("LogOut", "Account",
new { returnUrl = HttpContext.Current.Request.Url.LocalPath },
FormMethod.Post))
{
<input type="submit" name="logout" value="Выход" />
}
在行动中:
public ActionResult LogOut(string returnUrl)
{
FormsAuthentication.SignOut();
if (Url.IsLocalUrl(returnUrl))
{
// return RedirectToAction("LogIn", "Account", new { returnUrl = returnUrl });
return Redirect(returnUrl);
}
else
{
return Redirect(FormsAuthentication.LoginUrl);
}
}
答案 1 :(得分:-2)
return RedirectToAction(ActionName, ControllerName)