【问题标题】:Is is possible to have 2 methods with same name in WebAPI and same Parameter Type?是否可以在 WebAPI 中有 2 个具有相同名称和相同参数类型的方法?
【发布时间】:2016-02-04 03:36:42
【问题描述】:

WebApi中是否可以有两个方法名同名,参数类型相同但参数不同?

例如一个是按 Yearid 获取产品

另一个是通过Productid获取产品

我喜欢这样的溃败:

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) 
    {
         .....      
    }

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

【问题讨论】:

  • 我会考虑使用两种不同的路线:products/make/{makeid}products/year/{yearid}

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


【解决方案1】:

正如 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) 
{
     ... 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    相关资源
    最近更新 更多