2013-01-17 104 views
1

我在WebApiConfig.cs下面的代码Asp.NET网页API路由

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"; 
    } 
} 

当我试图把它说无法找到的API在控制器中采取行动。

/api/ABC/GetABCByXYZById/12 

回答

4

这是因为你的routeTemplate使用名称{id} action参数,但是你的动作实际上发生在一个参数与名称xYZId

试着改变你的操作参数称为id,它应该工作:
public string GetABCByXYZById(int id)