RedirectToPage() не работает в ASP.NET Страницы Razor Core 3

#asp.net #asp.net-core #razor-pages

#asp.net #asp.net-ядро #страницы razor

Вопрос:

У меня есть следующий код на странице razor выхода из системы.

 public async Task OnPostAsync()
{
  await loginManager.SignOutAsync();
  RedirectToPage("/Identity/Login");
}
  

Но это не перенаправляет на страницу входа, как ожидалось. Он по-прежнему показывает страницу выхода из системы.

Если я использую Response.Перенаправлять () вместо RedirectToPage(), тогда это работает.

Я использую предварительный просмотр 3 из ASP.NET Ядро 3.

Пожалуйста, помогите.

Ответ №1:

RedirectToPage() Метод генерирует то, RedirectToPageResult что вы забыли на самом деле return из вашего действия.

Попробуйте это вместо:

 public async Task<IActionResult> OnPostAsync()
{
    await loginManager.SignOutAsync();

    return RedirectToPage("/Identity/Login");
}
  

Комментарии:

1. Другого способа сделать это асинхронным нет, я знаю response.redirect, но вам нужно добавить путь к приложению