public class UsersController : ApiController
{
// GET api/companies/{company_id}/users/{user_id}
public object Get(int company_id, int user_id)
{
...
}
// GET api/companies/{company_id}/plants/{plant_id}/users
public IEnumerable<object> Get(int company_id, int plant_id)
{
...
}
}
第一种方法应该返回公司的单个用户部分 第二种方法应该返回公司和工厂的用户部分列表
ERROR 类型'...'已经定义了一个名为'Get'的成员,其参数类型相同
是否有可能避免Web Api将第二个Get解释为重新定义?
如果看http://aspnetwebstack.codeplex.com/wikipage?title=Attribute%20routing%20in%20Web%20API 场景3中的位置使用[HttpGet(“...”)]符号
public class MoviesController : ApiController
{
[HttpGet("actors/{actorId}/movies")]
public Movie Get(int actorId) { }
[HttpGet("directors/{directorId}/movies")]
public Movie Get(int directorId) { }
}
但在我的情况下 [HTTPGET(...)] ERROR 'System.Web.Http.HttpGetAttribute'不包含带有1个参数的构造函数
答案 0 :(得分:3)
我认为你必须为你的获取功能命名:
public class UsersController : ApiController
{
// GET api/companies/GetByUser/{company_id}/{user_id}
public object GetByUser(int company_id, int user_id)
{
...
}
// GET api/companies/GetByPlanet/{company_id}/{plant_id}
public IEnumerable<object> GetByPlanet(int company_id, int plant_id)
{
...
}
}