У меня есть это 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");
.