1

假设我有一个包含订单和订单详细信息的应用程序。我试图弄清楚如何最好地设置架构,以便我可以检索特定订单的所有订单详细信息。拥有这样的 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 类中的什么方法。上述路由在我的控制器类中期望什么方法签名?据我所知,这甚至无效,因此请随意推荐一种不同的方法。

4

4 回答 4

3

我得到它与以下工作。

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...
}
于 2012-04-24T15:12:00.653 回答
0

看看下面的页面。这会很有帮助 http://aspnetwebstack.codeplex.com/wikipage?title=Attribute%20routing%20in%20Web%20API

于 2013-06-19T10:24:17.910 回答
0

看看惊人的 AttributeRouting.WebAPI 包http://www.strathweb.com/2012/05/attribute-based-routing-in-asp-net-web-api/

于 2013-03-21T16:20:18.717 回答
0

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

于 2016-05-12T17:57:14.877 回答