默认路由到web api控制器

时间:2015-07-27 15:55:09

标签: asp.net-web-api asp.net-web-api-routing

在Web API默认路由中,如下所示:

routes.MapHttpRoute(
    name: "API Default",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

现在可以调用不同的控制器,如下所示:

/api/contacts
/api/contacts/1
/api/products/gizmo1

我想将其更改为将默认网址映射到给定的控制器: 例如如果我做了以下

  • / api 它应以 / api / contacts
  • 作为回应
  • / api / 1 它应以 / api / contacts / 1
  • 作为回应

我应该对路由进行哪些更改?

干杯

1 个答案:

答案 0 :(得分:0)

在这种情况下你需要有两条路线,如下面给出的

  config.Routes.MapHttpRoute(
         name: "DefaultApi1",
         routeTemplate: "api/{id}",
         defaults: new { controller = "contacts"}
         );

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new {controller = "contacts", id = RouteParameter.Optional}
            );