我正在努力理解为什么下面的代码不起作用
[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方法实际上不是在做同一件事吗?
答案 0 :(得分:2)
重定向将重定向到URL,并要求您提供完整的URL
RedirectToAction让我们通过向其传递动作和控制器名称来重定向到控制器中的动作。
如果您想重定向到www.youtube.com之类的网站,则需要使用重定向。
在您的示例中,它可能无法正常工作,因为您的重定向应如下所示
return Redirect("~/Account/Login");