在web api配置中合并两个路由

时间:2014-05-05 06:45:33

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

我在web api配置文件中有2条路由

config.Routes.MapHttpRoute("DefaultApiCtrl",
                                     "api/{controller}/{action}");

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

当我想这样调用web apis [GET]时:

/api/contacts/33

发生错误:No HTTP resource was found that matches the request URI

我如何合并这两条路线并摆脱错误?

解决方案:

Web API 2支持一种称为属性路由的新型路由。顾名思义,属性路由使用属性来定义路由。通过属性路由,您可以更好地控制Web API中的URI。例如,您可以轻松创建描述资源层次结构的URI。

asp.net

完成教程

1 个答案:

答案 0 :(得分:1)

此Web API似乎运行良好。不要认为你需要它吗?

 public static class WebAPIConfig
 {
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = System.Web.Http.RouteParameter.Optional }
        );
    }
}