Mehrere HttpPost-Methoden im Web-API-Controller
Ich fange an, MVC4-Web-API-Projekt zu verwenden, ich habe Controller mit mehrerenHttpPost
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;
}
}
HierMyRequestTemplate
Stellt die Vorlagenklasse dar, die für die Verarbeitung des Json verantwortlich ist, der über die Anforderung eingeht.
Error:
Wenn ich eine Anfrage mit Fiddler für machehttp://localhost:52370/api/VTRouting/TSPRoute
oderhttp://localhost:52370/api/VTRouting/Route
Ich erhalte einen Fehler:
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 in zu ändernglobal.asax
, aber ich erhalte immer noch den Fehler, 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.