Zaczynam korzystać z projektu MVC4 Web API, mam kontroler z wieloma HttpPost
metodami. Kontroler wygląda następująco:
Kontroler
public class VTRoutingController : ApiController
{
[HttpPost]
public MyResult Route(MyRequestTemplate routingRequestTemplate)
{
return null;
}
[HttpPost]
public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate)
{
return null;
}
}
Tutaj MyRequestTemplate
reprezentuje klasę szablonu odpowiedzialną za obsługę Json przechodzącą przez żądanie.
Błąd:
Kiedy wykonuję żądanie za pomocą programu Fiddler dla http://localhost:52370/api/VTRouting/TSPRoute
lub http://localhost:52370/api/VTRouting/Route
otrzymuję błąd:
Znaleziono wiele działań pasujących do żądania
Jeśli usunę jedną z powyższych metod, działa dobrze.
Global.asax
Próbowałem zmodyfikować domyślną tablicę routingu w programie global.asax
, ale nadal pojawia się błąd, myślę, że mam problem z definiowaniem tras w global.asax. Oto, co robię w 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" }
);
}
Wykonuję żądanie w programie Fiddler przy użyciu POST, przekazując json w RequestBody dla MyRequestTemplate.