我知道我之前已经这样做了,但是当我从VS创建默认的WebAPI并尝试添加一个简单的方法(如MySpecialMethod)然后使用httpClient从客户端使用它时,缺少404或id参数的错误< / p>
我可以通过这样的方式调用Values / Get:
GetAsync("api/Values").result
但如果我这样做就行不通了
GetAsync("api/Values/MySpecialMethod").result
这两种方法对于简单的测试是相同的。
答案 0 :(得分:3)
确保您的WebApiConfig配置了/api/{controller}/{action}/{id}
条目。听起来你有/api/{controller}/{id}
答案 1 :(得分:2)
尝试使用RouteAttribute来帮助澄清您的方法路线。
public class MyController : ApiController
{
[Route("api/Values/MySpecialMethod")]
public string MySpecialMethod()
{
}
}
如果您想使用此方法,请务必在AppStart中更新RouteConfig以包含以下内容
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
}