ASP.NET Core 5.0的常规路由是依据注册路由的顺序进行依赖的。如果当前请求的 URL 与多个注册的路由模板都匹配,则 ASP.NET Core 将按照注册的顺序依次检查它们,并使用第一个可用的路由来执行请求。
以下示例中,先注册的路由将优先使用,即依赖于路由的注册顺序:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "Default",
pattern: "{controller}/{action}/{id?}");
endpoints.MapControllerRoute(
name: "SomeRoute",
pattern: "SomePrefix/{controller=Home}/{action=Index}/{id?}");
});
这些路由模板按照注册的顺序进行检查,因此在URL包含"SomePrefix"时,'SomeRoute”路由将匹配。否则,'Default”路由将优先使用。