Tenho projeto com áreas e controlador normal nele. Mas o roteamento de área está funcionando, mas o controlador normal não está funcionando.
Funcionando, mas o roteamento de áreas está retornando 404:
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
Trabalhando para roteamento de área, mas não para controlador raiz:
app.MapControllerRoute(
name: "default",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
Tenho outros três projetos com os mesmos cenários, mas que estão funcionando, mas enfrentando problemas com meu projeto criado recentemente.
Referências: https://learn.microsoft.com/en-us/aspnet/core/mvc/controllers/areas?view=aspnetcore-6.0
Você deve especificar duas rotas com nomes diferentes.
Depois disso você deve usar
[Area]
o atributo para especificar qual Controlador pertence a qual Área.Você deve adicionar o modelo de rota padrão junto com o modelo de rota de área para fazer todo o roteamento padrão e de área funcionar.
Acho que você pode entender mal o
area:exists
significado.exists
aplica uma restrição de que a rota deve corresponder a uma área. Usando{area:...}
com MapControllerRoute:Referência: Áreas no ASP.NET Core