MVC4 Web API projesini kullanmaya başlıyorum, birden fazla HttpPost
yö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/TSPRoute
veya 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.