1

现在,当有人注销时,我传递到注销操作 url,他是从哪个页面执行的。但问题是,我无法触发控制器的 url 操作,他按下了退出。

例如,用户在页面上

site.com/cabinet/home/index

在这里按下网址,例如:

site.com/Account/LogOut/?returnURL=/cabinet/home/index

public ActionResult LogOut(string returnURL)
{
    // Need to RedirectToAction(...)
    return Redirect(returnURL);
}

因此,如果我将他重定向到 returnURL- 在我的控制器中不会发生任何事情(即使不是在控制器中,在 View 中,它将为未经授权的用户重绘(对于 auth 和不是 auth 用户的界面不同))。

那么,我是否应该提取控制器、动作、区域(?)、参数,并且仅在此之后进行 RedirectToAction?或者当你只知道 url 时,让控制器被解雇的任何其他方法?

谢谢。

4

2 回答 2

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);
        }
    }
于 2013-07-18T11:03:23.440 回答
-2
    return RedirectToAction(ActionName, ControllerName)
于 2012-09-19T13:36:23.960 回答