问题是您注册了两次MVC。
// Route for areas
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
// Default route
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
在这种情况下
上次注册
覆盖第一条,因此实际上只注册了1条路由(区域没有路由)。
要解决这个问题,只需注册一次MVC,并将所有路由都放在该实例中。
app.UseMvc(routes =>
{
// Route for areas
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
// Default route
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});