Ich beginne mit der Verwendung des MVC4-Web-API-Projekts. Ich habe einen Controller mit mehreren HttpPostMethoden. Der Controller sieht folgendermaßen aus:
Regler
public class VTRoutingController : ApiController
{
[HttpPost]
public MyResult Route(MyRequestTemplate routingRequestTemplate)
{
return null;
}
[HttpPost]
public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate)
{
return null;
}
}
Hier wird MyRequestTemplatedie Vorlagenklasse dargestellt, die für die Verarbeitung des durch die Anforderung eingehenden Json verantwortlich ist.
Error:
Wenn ich mit Fiddler eine Anfrage stelle http://localhost:52370/api/VTRouting/TSPRouteoder http://localhost:52370/api/VTRouting/Route eine Fehlermeldung erhalte:
Es wurden mehrere Aktionen gefunden, die der Anforderung entsprechen
Wenn ich eine der oben genannten Methoden entferne, funktioniert es einwandfrei.
Global.asax
Ich habe versucht, die Standard-Routing-Tabelle global.asaxin zu ändern, aber es wird immer noch der Fehler angezeigt. Ich glaube, ich habe Probleme beim Definieren von Routen in global.asax. Folgendes mache ich in 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" }
);
}
Ich mache die Anfrage in Fiddler mit POST und übergebe json in RequestBody für MyRequestTemplate.