Странное поведение с RedirectToAction в .NET Core MVC 2.1 - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть 2 проекта в одном решении.При попытке изменить страницу успешного перенаправления входа в систему, я попытался redirectToAction.(Для ясности приведенный ниже код работает для 1 проекта, но не для другого)

if (result.Succeeded)
{
    _logger.LogInformation("User logged in.");
    //return LocalRedirect(returnUrl);
    return RedirectToAction("Index", "ControllerName");
 }

Так что это ссылки на логин и перенаправленную ссылку

https://localhost:44343/Identity/Account/Login

https://localhost:44343/ControllerName

Однако, если делать то же самое в другом проекте, это не работает.Это сбивает с толку меня, потому что, насколько я знаю, конфигурации проекта одинаковы.

https://localhost:44343/Identity/Account/Login

https://localhost:44343/Identity/ControllerName

Редактировать: Это проблема. ^ Этоссылается на несуществующую страницу.Каким-то образом это работает нормально в 1 проекте, но мне нужно добавить дополнительный параметр области во 2-м проекте, чтобы он работал.

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

{
    _logger.LogInformation("User logged in.");
    //return LocalRedirect(returnUrl);
    return RedirectToAction("Index", "Competitions", new { area = "" });
}

Может ли какая-то добрая душа объяснить, почему это происходит?Большое спасибо!

RouteConfig в проекте 1:

app.UseMvc(routes =>
{
    routes.MapRoute(
    name: "default",
    template: "{controller=Home}/{action=Index}/{id?}");
});

RouteConfig в проекте 2:

app.UseMvc(routes =>
{
    routes.MapRoute(
    name: "areaRoute",
    template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");

    routes.MapRoute(
    name: "default",
    template: "{controller=Home}/{action=Index}/{id?}");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...