Je commence à utiliser le projet d'API Web MVC4, j'ai un contrôleur avec plusieurs HttpPostméthodes. Le contrôleur ressemble à ce qui suit:
Manette
public class VTRoutingController : ApiController
{
[HttpPost]
public MyResult Route(MyRequestTemplate routingRequestTemplate)
{
return null;
}
[HttpPost]
public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate)
{
return null;
}
}
Ici MyRequestTemplatereprésente la classe de modèle responsable de la gestion du Json passant par la requête.
Erreur:
Lorsque je fais une demande en utilisant Fiddler pour http://localhost:52370/api/VTRouting/TSPRouteou http://localhost:52370/api/VTRouting/Route j'obtiens une erreur:
Plusieurs actions correspondant à la demande ont été trouvées
Si je supprime l'une des méthodes ci-dessus, cela fonctionne bien.
Global.asax
J'ai essayé de modifier la table de routage par défaut dans global.asax, mais j'obtiens toujours l'erreur, je pense que j'ai un problème pour définir les routes dans global.asax. Voici ce que je fais dans 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" }
);
}
Je fais la demande dans Fiddler en utilisant POST, en passant json dans RequestBody pour MyRequestTemplate.