由于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部分?
第二个问题:如果我需要将任何 mvc 页面添加到我的 Api(即帮助页面),可以通过 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 WebAPI 中的 MapRoute 或 MapHttpRoute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31601102/