MVC WebAPI中的MapRoute或MapHttpRoute

时间:2015-07-24 02:12:46

标签: c# asp.net-mvc asp.net-web-api asp.net-mvc-routing

由于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 }
        );
  • 第一个问题:如果我错了,请纠正我。我认为 MapRoute 只是为了支持MVC页面,比如帮助页面等......所以如果我不这样做 有我的Api的任何MVC页面,我还需要实现吗? routes.MapRoute part?

  • 第二个问题:如果我需要将任何mvc页面添加到我的Api(即帮助页面),可以通过 MapHttpRoute

    < / LI>

1 个答案:

答案 0 :(得分:3)

第一个问题

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

第二个问题

没有。 MapHttpRoute将仅定位从ApiController派生的类内部的动作方法(或IHttpController的实现,但这是大多数时候从ApiController派生的高级场景)。

另一方面,查看命名空间非常直观。

MapRoute是System.Web.Mvc命名空间中的RouteCollectionExtensions类的方法,请参阅this以获取更多信息

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

这里System.Web.Http与WebAPI有关。