为什么 ASP.NET MVC 路由有名字?

Why does an ASP.NET MVC route have a name?

在 ASP.NET MVC 5 网络应用程序中,有一个注册许多路由的 RouteConfig class。到目前为止,在我看到的所有示例中,只有“默认”路由具有非空名称。 URL 模式和默认路由值似乎足以将任何 URL 正确关联到要执行的控制器和操作。那么,命名路线有什么好处吗?用于调试或记录?只是为了自我记录代码?

例如:

public class RouteConfig
{
  public static void RegisterRoutes( RouteCollection routes )
  {
    routes.IgnoreRoute( "{resource}.axd/{*pathInfo}" );

    // Most pages.
    routes.MapRoute( name: "Default",
      url: "{controller}/{action}/{id}",
      defaults: new { controller = "home", action = "index", id = UrlParameter.Optional }

    // A special page.
    // Should the route have a name?
    routes.MapRoute( name: "",
      url: "special",
      defaults: new { controller = "special", action = "index", HttpVerbs = HttpVerbs.Get } );
  }
}

命名路线的主要原因是,如果您需要 link 从应用程序中的某处到路线,您可以引用该名称。这样,如果实际的 URL/path 发生变化,您就不会在引用该路由的代码中的任何地方中断。