MVC WebAPI 中的 MapRoute 或 MapHttpRoute

MapRoute or MapHttpRoute in MVC WebAPI

因为WebApi路由映射可以通过MapHttpRoute来完成:

            myConfig.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

我是否还需要像这样使用 MapRoute 来映射路线:

            RouteTable.Routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );

第一题

如果您不使用 MVC,则不需要 MapRoute

第二题

没有。 MapHttpRoute 将仅针对从 ApiController 派生的 classes 内的操作方法(或 IHttpController 的实现,但大多数情况下这是一个高级场景,您将从 ApiController 派生)。

另一方面,查看命名空间就足够直观了。

MapRoute 是 class RouteCollectionExtensions 的一种方法,它位于 System.Web.Mvc 命名空间中,请参阅 this 了解更多信息

MapHttpRoute 是 class HttpRouteCollectionExtensions 的一种方法,它位于 System.Web.Http 命名空间中,请参阅 this 了解更多信息

此处System.Web.Http与WebAPI相关