【问题标题】:Default Routing to web api controller默认路由到 web api 控制器
【发布时间】:2015-07-27 15:55:08
【问题描述】:

Web API 默认路由如下:

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

现在可以按如下方式调用不同的控制器:

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

我想将其更改为将默认 url 映射到给定的控制器: 例如如果我跟随

  • /api 它应该响应为 /api/contacts
  • /api/1 它应该响应为 /api/contacts/1

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

干杯

【问题讨论】:

  • 你可以在你的联系人操作之上添加一个路由属性,像这样...... [Route("")] 现在它会在你只调用 API 时调用它
  • 似乎 [Route("")] 适用于 web api 2.0,我仍在使用 web api 1.0,因为服务器有 .net 4.0

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


【解决方案1】:

在这种情况下,您需要有两条路线,如下所示

  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}
            );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多