【问题标题】:WebApi help and multipe routesWeb Api 帮助和多条路由
【发布时间】:2013-11-19 03:51:02
【问题描述】:

我有一个 web api 项目(C#,asp.net MVC),我需要能够使用模板 api/{controller}/{action}/{id} 和 api/{controller}/ 调用操作{ID}。 为此,我为 api 控制器添加了 2 个路由:

 config.Routes.MapHttpRoute(
           name: "DefaultApi",
           routeTemplate: "api/{controller}/{action}/{id}",
           defaults: new { id = RouteParameter.Optional },
           constraints: new { action = @"^[a-zA-Z]+$" }
           );

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

所以现在如果我有控制器 MyController 和方法 Delete,我可以同时调用它 DELETE api/MyController/Delete 和 DELETE api/MyController; 此外,我还有自动生成的 api 帮助,并且在我添加了路由的第二个变体之后 - 一些方法现在在帮助中显示了两次。

我想要的是每个操作在帮助中只有一个参考。 可能吗? 或者我的路由有问题,我可以有多个 GET/POST 方法,只使用“api/{controller}/{id}”模板?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-web-api asp.net-web-api-routing


    【解决方案1】:

    这里的关键字是“自动生成的”API 帮助。您有两条路线,因此您的帮助将列出它们。解决这个问题的唯一方法是不使用自动生成的帮助。但是,如果有两条路线可以做某事,both 应该记录在案,否则,您应该只有一条路线开始。

    【讨论】:

      猜你喜欢
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多