c# - MVC WebAPI 中的 MapRoute 或 MapHttpRoute

标签 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部分?

  • 第二个问题:如果我需要将任何 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/

相关文章:

c# - Asp.Net 在外部程序集中访问声明身份

javascript - 如何使用Dot net core WEB API实现文件上传?

c# - 如何使用这个信号量

c# - ScrollView 错误

c# - ASP.NET MVC - 在 Html.ActionLink routeValues 中传递模型时遇到问题

asp.net-mvc - 本地化数据注释默认消息([必需] [StringLength]等)

c# - 依赖注入(inject)不知道我要注入(inject)的类型

c# - 如何在 ASP.NET 5/MVC 6 中创建响应消息并向其添加内容字符串

c# - 将整数数组转换为枚举数组

c# - MVC中的mongodb连接池