2016-09-13 5 views
0

はなぜHTTP {action}が含まれていないルーティングデフォルトのWeb APIの2を行います含まれていないんなぜデフォルトのHTTPルートが{アクション}

マイクロソフトサンプルから:

// Configure Web API for self-host. 
HttpConfiguration config = new HttpConfiguration(); 
config.Routes.MapHttpRoute( 
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

なぜそれが似ていませんこれは:

// Configure Web API for self-host. 
HttpConfiguration config = new HttpConfiguration(); 
config.Routes.MapHttpRoute( 
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{action}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

正しいルーティングにはアクションの部分が必要ないのはなぜですか?

コードがhttp://www.asp.net/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api

おかげでたくさんのROMです!

+0

このモードでは、メソッドはHttp Verbs(Get、POST、PUT)とパラメータによって一致します。 '{action}'を追加して、それをメソッド名でマッチさせることができます。 – user3185569

答えて

1

この例のアクションは、暗黙的に一致しています。あなたが見ると、それらはすべて異なるHTTP動詞です。

+0

これで '{action}'を追加しても問題はありませんか?どうもありがとう! – BendEg

+1

私があなたの場合は、[属性ルーティング](http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api- 2)。より明示的です。私は既定のルートを変更する必要はありませんでした。 –

+0

そのヒントありがとうございます! – BendEg

関連する問題