【问题标题】:DELETE that has multiple optional parameters with ASP.NET Web API使用 ASP.NET Web API 具有多个可选参数的 DELETE
【发布时间】:2016-09-16 23:21:08
【问题描述】:

我在依赖多个可为空参数的 Web API 控制器中有一个 DELETE 操作方法。

这是我目前的做法:

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

这是正确的吗?我认为 DELETE 比 POST 更类似于 GET,所以我使用了查询字符串技术,因为它们需要为空。

【问题讨论】:

  • 您对此有什么特别的问题吗?请更好地描述您的需求。
  • 你不应该把查询字符串参数放在你的路由中;它们是自动处理的。

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


【解决方案1】:

据我所知,documentation 和这个post 的 URL 参数会自动路由到按名称匹配的操作参数,所以你可以这样说:

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

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

【讨论】:

    猜你喜欢
    • 2012-04-04
    • 2017-08-30
    • 1970-01-01
    • 2023-04-08
    • 2018-12-17
    • 2014-02-04
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多