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

すばらしいAttributeRouting.WebAPIパッケージhttp://www.strathweb.com/2012/05/attribute-based-routing-in-asp-net-web-api/をご覧ください。

于 2013-03-21T16:20:18.717 に答える
0

次のページをご覧ください。役に立ちます http://aspnetwebstack.codeplex.com/wikipage?title=Attribute%20routing%20in%20Web%20API

于 2013-06-19T10:24:17.910 に答える
0

System.Web.Http.WebHostdll参照をWebアプリケーションに追加します。ありがとうございました。

于 2016-05-12T17:57:14.877 に答える