Ich beginne mit der Verwendung des MVC4-Web-API-Projekts. Ich habe einen Controller mit mehreren HttpPost
Methoden. 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 MyRequestTemplate
die 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/TSPRoute
oder 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.asax
in 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.