为什么 ASP.NET MVC 路由有一个名称?

Mik*_*nch 1 c# asp.net-mvc-5

在 ASP.NET MVC 5 Web 应用程序中,有一个 RouteConfig 类注册许多路由。到目前为止,在我看到的所有示例中,只有“默认”路由具有非空名称。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 } );
  }
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*res 6

命名路线的主要原因是,如果您需要从应用程序中的某个位置链接到路线,则可以引用该名称。这样,如果实际的 URL/路径发生变化,您就不会破坏引用该路由的代码中的所有位置。