由于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/