使用ASP.NET Web API具有多个可选参数的DELETE

时间:2016-05-19 21:11:23

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

我在Web API控制器中有一个DELETE Action Method,它依赖于多个可为空的参数。

以下是我目前的工作方式:

[HttpDelete("{id}?productId={productId}&categoryId={categoryId}")]
public void Delete(int Id, int? productId = null, int? categoryId = null)
{
    _ppManager.Delete(Id, productId, categoryId);
}

这是对的吗?我认为DELETE更像是一个GET而不是POST,所以我使用了查询字符串技术,因为它们需要可以为空。

1 个答案:

答案 0 :(得分:0)

据我所知documentation和此post,网址参数会自动路由到您按名称匹配的操作参数,因此您可以将其设置为:

[HttpDelete("{id:int}")]
public void Delete(int Id, int? productId = null, int? categoryId = null)
{
    _ppManager.Delete(Id, productId, categoryId);
}

并且匹配的URL参数将自动路由。