如果我使用区域,.NET Core 6.0 路由将无法工作

问题描述 投票:0回答:1

我有一个包含区域和普通控制器的项目。但是区域路由可以工作,但普通控制器不工作。

工作正常,但区域路由返回 404 :

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

适用于区域路由,但不适用于根控制器:

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

我还有其他 3 个具有相同场景的项目,但它们正在运行,但我最近创建的项目面临问题。

asp.net-core-mvc .net-6.0 asp.net-mvc-routing asp.net-mvc-areas
1个回答
0
投票

您必须将默认路由模板与区域路由模板一起添加才能使所有默认路由和区域路由起作用。

我想你可能误解了

area:exists
的意思。
exists
应用了路线必须与区域匹配的约束。将
{area:...}
与 MapControllerRoute 一起使用:

  • 是向区域添加路由的最简单的机制。
  • 匹配所有具有 [Area("Area name")] 属性的控制器

参考:ASP.NET Core 中的区域

© www.soinside.com 2019 - 2024. All rights reserved.