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.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage