RedirectToAction не может найти контроллер после перехода с ASP. NET Core 2.2 на 3.1 - PullRequest
0 голосов
/ 26 марта 2020

У меня есть это RedirectToAction("Index", "Home"); из области, которая должна перенаправить на контроллер дома, который находится за пределами области. Я перенаправляю из области Auth.

Моя конфигурация конечной точки Startup выглядит следующим образом:

app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "MyArea",
                pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");

            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");

            endpoints.MapControllerRoute(
                    name: "Auth",
                    pattern: "{area:exists}/{controller=Login}/{action=Login}");

            endpoints.MapControllerRoute(
                name: "Auth",
                pattern: "{area:exists}/{controller=Register}/{action=Register}");

            endpoints.MapControllerRoute(
                name: "Auth",
                pattern: "{area:exists}/{controller=Logout}/{action=Logout}");
        });

После вызова перенаправления контроллер не достигнут. Это использование для работы в ASP. NET Core 2.2 MVC.

Вот маршрутизация MVC, которая работала

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

                routes.MapRoute(
                    name: "Default Areas",
                    template: "{area:exists}/{controller}/{action}");

                routes.MapRoute(
                    name: "Auth",
                    template: "{area:exists}/{controller=Login}/{action=Login}");

                routes.MapRoute(
                    name: "Auth",
                    template: "{area:exists}/{controller=Register}/{action=Register}");

                routes.MapRoute(
                    name: "Auth",
                    template: "{area:exists}/{controller=Logout}/{action=Logout}");

Я обнаружил, что используя RedirectToAction("Index", "Home", new { area = "" }); работает, когда мне нужно направиться к локации за пределами Района.

Я не понимаю, почему asp. net 3.1 не находит правило маршрутизации, где зона не определена pattern:"{controller=Home}/{action=Index}/{id?}"); при перенаправлении без определенной области RedirectToAction("Index", "Home");.

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