WebAPIのリクエストに一致する複数のアクションが見つかりました

Multiple Actions Were Found That Match Request Web Api

https://stackoverflow.com/questions/14534167/multiple-actions-were-found-that-match-the-request-in-web-api

Webを何度も検索し、次の情報が見つかった場合は、ルーティングマップに最適なフォームを見つけようとしました。



config.Routes.MapHttpRoute('DefaultApiWithId', 'Api/{controller}/{id}', new { id =RouteParameter.Optional }, new { id = @'d+' }) config.Routes.MapHttpRoute('DefaultApiWithAction', 'Api/{controller}/{action}')

これらのマッピングは、アクション名のマッピングと基本的なhttp規則(GET、POST、PUT、DELETE)の両方に適用されます。

私にとってこれはうまくいきましたが、ルート構成でルートの順序を変更して、アクションのあるルートが最初に表示されるようにした後でのみ

https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

https://www.cnblogs.com/chucklu/p/10283664.html

現在の変更は、アクションを追加することです

config.Routes.MapHttpRoute(
名前: 'DefaultApi'、
routeTemplate: 'api / {controller} / {action} / {id}'、
デフォルト:new {id = RouteParameter.Optional}
)。

この問題は、あなたが働くことができる前に、今は働かないということにつながります

request1404エラー

GET http:// localhost / Chuck_WebApi / api / products HTTP / 1.1
ユーザーエージェント:フィドラー
ホスト:localhost
コンテンツの長さ:0

request2404エラー

GET http:// localhost / Chuck_WebApi / api / product / 1 HTTP / 1.1
ユーザーエージェント:フィドラー
ホスト:localhost
コンテンツの長さ:0

request1は変更する必要があります

GET http:// localhost / Chuck_WebApi / api / products / getallproducts HTTP / 1.1
ユーザーエージェント:フィドラー
ホスト:localhost
コンテンツの長さ:0

request2は変更する必要があります

GET http:// localhost / Chuck_WebApi / api / products / getproduct / 1 HTTP / 1.1
ユーザーエージェント:フィドラー
ホスト:localhost
コンテンツの長さ:0