Múltiplos métodos HttpPost no controlador da API da Web
Eu estou começando a usar o projeto de API da Web MVC4, tenho controlador com váriosHttpPost
métodos. O controlador se parece com o seguinte:
Controlador
public class VTRoutingController : ApiController
{
[HttpPost]
public MyResult Route(MyRequestTemplate routingRequestTemplate)
{
return null;
}
[HttpPost]
public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate)
{
return null;
}
}
AquiMyRequestTemplate
representa a classe de modelo responsável por manipular o Json que vem através da solicitação.
Erro:
Quando faço uma solicitação usando o Fiddler parahttp://localhost:52370/api/VTRouting/TSPRoute
ouhttp://localhost:52370/api/VTRouting/Route
Eu recebo um erro:
Várias ações foram encontradas que correspondem à solicitação
Se eu remover um dos métodos acima, ele funciona bem.
Global.asax
Eu tentei modificar a tabela de roteamento padrão emglobal.asax
, mas ainda estou recebendo o erro, acho que tenho problema na definição de rotas em global.asax. Aqui está o que estou fazendo em 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" }
);
}
Estou fazendo a solicitação no Fiddler usando POST, passando json em RequestBody para MyRequestTemplate.