可以在WebAPI中使用两个具有相同名称的方法和相同的参数类型吗?

时间:2016-02-03 19:21:35

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

是否可以在WebApi中使用2个具有相同名称的方法名称,并且参数类型相同但参数不同?

例如,一个是按年份获得产品

另一个是通过Productid获得产品

我喜欢这个Rout:

a4 = [str(x) for x in code_block]
a6 = [str(x) for x in text_block]

我知道我可以有不同的名字,但我的老板喜欢有相同的名字我想知道是否可能。

这些是方法:

Products?yearId=10
Products/15

不确定[Route]应如何获得此最终结果。

1 个答案:

答案 0 :(得分:2)

正如Brendan Green评论的那样,您需要定义两条不同的路线。否则,将无法确定您实际要调用的方法:

[HttpGet]
[Route("Products/Year/{yearId}")]
public async Task<IEnumerable<Make>> GetProductsYearId(int yearId)
{
    ...
}

[HttpGet]
[Route("Products/Make/{makeid}")]
public async Task<Make> GetProductById(int makeid) 
{
     ... 
}