1

我的 WebApiConfig.cs 中有以下代码

   config.Routes.MapHttpRoute(
        name: "Action",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { id = RouteParameter.Optional }
   );

ABC控制器.cs

 public class ABCController : ApiController
 {        
     [AcceptVerbs("GET")]
     [ActionName("GetABCByXYZById")]
     public string GetABCByXYZById(int xYZId)
     {                
         return "GetABCByXYZById";
     }
 }

当我尝试调用 API 时,它说无法在控制器中找到操作。

 /api/ABC/GetABCByXYZById/12
4

1 回答 1

4

这是因为您的 routeTemplate 使用了{id}action 参数的名称,但您的 action 实际上接受了一个带有 name 的参数xYZId

尝试将您的操作参数更改为被调用id,它应该可以工作:
public string GetABCByXYZById(int id)

于 2013-01-17T20:06:03.077 回答