MVC4 Web APIプロジェクトを使い始めましたHttpPost
。複数のメソッドを持つコントローラーがあります。コントローラは次のようになります。
コントローラ
public class VTRoutingController : ApiController
{
[HttpPost]
public MyResult Route(MyRequestTemplate routingRequestTemplate)
{
return null;
}
[HttpPost]
public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate)
{
return null;
}
}
以下MyRequestTemplate
は、リクエストを介して送信されるJsonの処理を担当するテンプレートクラスを表します。
エラー:
Fiddler forを使用してリクエストを行うhttp://localhost:52370/api/VTRouting/TSPRoute
かhttp://localhost:52370/api/VTRouting/Route
、エラーが発生します。
リクエストに一致する複数のアクションが見つかりました
上記の方法のいずれかを削除すると、正常に動作します。
Global.asax
でデフォルトのルーティングテーブルを変更しようとしましたがglobal.asax
、それでもエラーが発生します。global.asaxでルートを定義するときに問題があると思います。これが、global.asaxで行っていることです。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapHttpRoute(
name: "MyTSPRoute",
routeTemplate: "api/VTRouting/TSPRoute",
defaults: new { }
);
routes.MapHttpRoute(
name: "MyRoute",
routeTemplate: "api/VTRouting/Route",
defaults: new { action="Route" }
);
}
POSTを使用してFiddlerでリクエストを作成し、MyRequestTemplateのRequestBodyにjsonを渡します。