Reputation: 575
I have the following code in my WebApiConfig.cs
config.Routes.MapHttpRoute(
name: "Action",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
ABCController.cs
public class ABCController : ApiController
{
[AcceptVerbs("GET")]
[ActionName("GetABCByXYZById")]
public string GetABCByXYZById(int xYZId)
{
return "GetABCByXYZById";
}
}
When I try to call the API it says not able to find the action in the controller.
/api/ABC/GetABCByXYZById/12
Upvotes: 1
Views: 274
Reputation: 10175
It's because your routeTemplate uses the name {id}
for the action parameter but your action actually takes in a parameter with name xYZId
.
Try changing your action parameter to called id
and it should work:
public string GetABCByXYZById(int id)
Upvotes: 4