MVC4 Web API projesini kullanmaya başlıyorum, birden fazla HttpPostyöntemle kontrolcüm var . Denetleyici aşağıdaki gibi görünür:
kontrolör
public class VTRoutingController : ApiController
{
[HttpPost]
public MyResult Route(MyRequestTemplate routingRequestTemplate)
{
return null;
}
[HttpPost]
public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate)
{
return null;
}
}
Burada MyRequestTemplate, istek aracılığıyla gelen Json'ı işlemekten sorumlu şablon sınıfını temsil eder.
Hata:
Fiddler'ı kullanarak istekte bulunduğumda http://localhost:52370/api/VTRouting/TSPRouteveya http://localhost:52370/api/VTRouting/Route bir hata aldığımda:
İstekle eşleşen birden çok işlem bulundu
Yukarıdaki yöntemlerden birini kaldırırsam iyi çalışıyor.
Global.asax
Varsayılan yönlendirme tablosunu içinde değiştirmeyi denedim global.asax, ancak hala hatayı alıyorum, global.asax'ta yolları tanımlamada sorun yaşadığımı düşünüyorum. İşte global.asax'ta yaptığım şey.
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" }
);
}
POST kullanarak Fiddler'da istek yapıyorum, MyRequestTemplate için RequestBody'de json'u geçiyorum.