Asp.netCore中的重定向与RedirectToAction

时间:2019-03-14 16:18:21

标签: c# asp.net-core asp.net-core-mvc

我正在努力理解为什么下面的代码不起作用

[HttpPost]
public async Task<IActionResult> Logout()
{
    await _signInManager.SignOutAsync();
    if (_signInManager.SignOutAsync().IsCompletedSuccessfully)
    { 
        return Redirect("/Account/Login");
    }
    return View();
}

但以下代码有效:

[HttpPost]
public async Task<IActionResult> Logout()
{
    await _signInManager.SignOutAsync();
    if (_signInManager.SignOutAsync().IsCompletedSuccessfully)
    { 
        return RedirectToAction("Login", "Account");
    }
    return View();
}

当我使用重定向方法时,似乎注销方法从未完成。 Redirect和RedirectToAction方法实际上不是在做同一件事吗?

1 个答案:

答案 0 :(得分:2)

重定向将重定向到URL,并要求您提供完整的URL

RedirectToAction让我们通过向其传递动作和控制器名称来重定向到控制器中的动作。

如果您想重定向到www.youtube.com之类的网站,则需要使用重定向。

在您的示例中,它可能无法正常工作,因为您的重定向应如下所示

return Redirect("~/Account/Login");