我正在使用用户登录页面进行MVC 4项目。一切正常。

问题是当我单击链接以注销时,重定向URL不正确。

这是解释得更好的代码:

视图:

<a href="@Url.Action("LogOff", "Account")">Logout ?</a>


控制器:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOff()
  {
     WebSecurity.Logout();

      return RedirectToAction("Login", "Account");
  }


当我单击注销链接时,URL向我显示此==> Account/LogOff

但我想重定向到此==> Account/Login

有人知道发生了什么吗?

最佳答案

在HTML中,锚元素(<a>)发送GET请求,而不是POST,因此您的[HttpPost]控制器操作将永远不会被调用。如果要调用此操作,则应使用带有POST方法的HTML表单:

@using (Html.BeginForm("LogOff", "Account", FormMethod.Post))
{
    @Html.AntiForgeryToken()
    <button type="submit">Logout ?</button>
}


还要注意,我在表单内包括了一个AntiForgery令牌,因为您的控制器操作已用[ValidateAntiForgeryToken]属性修饰,因此可以期待它。

关于c# - 重定向网址不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18385789/

10-15 09:21