2013-01-17 103 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)