Redirect vs RedirectToAction в Asp.netCore - PullRequest
1 голос
/ 14 марта 2019

Я изо всех сил пытаюсь понять, почему код ниже не будет работать

[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 Ответ

2 голосов
/ 14 марта 2019

Redirect перенаправит на URL-адрес и требует, чтобы вы указали полный URL-адрес

RedirectToAction позволяет перенаправить действие в контроллере, передав ему имя действия и контроллера.

Если выЕсли вы хотите перенаправить на веб-сайт, например www.youtube.com, вам нужно использовать Redirect.

В вашем примере это может не работать, поскольку ваше перенаправление должно выглядеть следующим образом

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...