由于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页面,我是否仍需要实施
route.MapRoute部分?
第二个问题:如果我需要在我的Api中添加任何mvc页面(即帮助页面),可以通过MapHttpRoute完成

最佳答案

第一个问题

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

第二个问题

不能。MapHttpRoute将仅针对从ApiController派生的类(或IHttpController的实现中的动作方法)的目标,但这在大多数情况下都是从ApiController派生的。

另一方面,查看名称空间足够直观。

MapRoute是类RouteCollectionExtensions的方法,该方法位于System.Web.Mvc命名空间中,有关详细信息,请参见this



MapHttpRoute是类HttpRouteCollectionExtensions的方法,该方法位于System.Web.Http命名空间中,有关详细信息,请参见this

这里的System.Web.Http与WebAPI相关。

关于c# - MVC Web API中的MapRoute与MapHttpRoute,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31601102/

10-11 02:04