由于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>答案 0 :(得分:3)
第一个问题
如果您不使用MVC,则不需要 MapRoute
第二个问题
没有。 MapHttpRoute将仅定位从ApiController派生的类内部的动作方法(或IHttpController的实现,但这是大多数时候从ApiController派生的高级场景)。
另一方面,查看命名空间非常直观。
MapRoute
是System.Web.Mvc命名空间中的RouteCollectionExtensions类的方法,请参阅this以获取更多信息
和
MapHttpRoute
是HttpRouteCollectionExtensions类的一个方法,它位于System.Web.Http命名空间中,请参阅this了解更多信息
这里System.Web.Http与WebAPI有关。