【问题标题】:Mapping HTTP routes in ASP.NET Web API在 ASP.NET Web API 中映射 HTTP 路由
【发布时间】:2012-04-23 22:49:35
【问题描述】:

假设我有一个包含订单和订单详细信息的应用。我试图弄清楚如何最好地设置架构,以便我可以检索特定订单的所有订单详细信息。这样的 URL 结构看起来既优雅又直观:

http://example.com/api/orders/{orderid}/orderdetails

我可以在 global.asax 中注册一个路由:

System.Web.Routing.RouteTable.Routes.MapHttpRoute(
  name: "DefaultApi",
  routeTemplate: "api/orders/{orderid}/orderdetails",
  defaults: new { orderid = System.Web.Http.RouteParameter.Optional }
);

但我不知道这映射到 OrdersController 类中的哪个方法。上述路由在我的控制器类中期望什么方法签名?据我所知,这甚至是无效的,所以请随意推荐一种不同的方法。

【问题讨论】:

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


    【解决方案1】:

    我得到它与以下工作。

    Global.asax Application_Start:

    System.Web.Routing.RouteTable.Routes.MapHttpRoute(
     name: "DefaultApi",
     routeTemplate: "api/{controller}/{orderid}/{action}"
    );
    

    控制器类:

    [ActionName("OrderDetails")]
    public IEnumerable<OrderDetail> GetOrderDetails(int orderId)
    {
     // return data...
    }
    

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        【讨论】:

          【解决方案4】:

          将 System.Web.Http.WebHost dll 引用添加到您的 Web 应用程序中。谢谢你。

          【讨论】:

          • 这不能回答 OP 问题。他问他的路由映射到 OrdersController 类中的哪个方法和签名。
          猜你喜欢
          • 2012-11-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多