2016-02-03 61 views
1

在WebApi和相同的參數類型,但參數不同的情況下,可能有兩個方法的名稱相同嗎?在WebAPI和相同的參數類型中可以有兩個同名的方法嗎?

例如,一個是Yearid

而另外一個拿到產品是產品ID

得到的產品,我喜歡這個潰敗:

Products?yearId=10 
Products/15 

我知道我可以有不同名字,但我的老闆喜歡有同樣的名字,我想知道這是否可能。

,這些都是方法:

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

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

不知道如何[路線]應該看起來像得到這個最終結果。

+3

我想看看使用兩種不同的路線:'產品/製造/ {} makeid'和'產品/年/ { yearid}' –

回答

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) 
{ 
    ... 
} 
相關問題