使用其他方法名称创建WebAPI

时间:2015-10-22 15:38:31

标签: c# asp.net-web-api

我知道我之前已经这样做了,但是当我从VS创建默认的WebAPI并尝试添加一个简单的方法(如MySpecialMethod)然后使用httpClient从客户端使用它时,缺少404或id参数的错误< / p>

我可以通过这样的方式调用Values / Get:

 GetAsync("api/Values").result

但如果我这样做就行不通了

 GetAsync("api/Values/MySpecialMethod").result

这两种方法对于简单的测试是相同的。

2 个答案:

答案 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();
}