【问题标题】:.Net Core Web API Post route endpoint not being hit.Net Core Web API Post 路由端点未命中
【发布时间】:2020-09-12 22:51:23
【问题描述】:

我定义了以下 .Net Core API 路由。

[HttpPost("/addproduct")]
[Consumes("application/json")]
public ActionResult<IEnumerable<ProductDTO>> AddProduct([FromBody] ProductDTO){}

我已经在类上定义了以下属性:

[EnableCors()]
[Produces("application/json")]
[Route("api/[controller]")]

我这样称呼它:https://localhost:xxxxx/api/products/addproduct 并且我正在向它传递一个表示 productDTO 的有效负载。为什么这条路线没有命中?

【问题讨论】:

  • 使用[HttpPost("addproduct")]

标签: .net-core asp.net-web-api-routing webapi


【解决方案1】:

问题在于 HttpPost 上使用的路由属性。

如上所述,AddProduct 操作方法匹配以下 url:

https://localhost:xxxx/addproduct

即使您对控制器名称使用令牌替换,通过使用前导斜杠,您也会在 AddProduct 方法上覆盖该路由。

要正确路由到方法,请像这样删除前导斜杠:

    [HttpPost("addproduct")]
    [Consumes("application/json")]
    public ActionResult<IEnumerable<ProductDTO>> AddProduct([FromBody] ProductDTO productDto)

有关属性路由或控制器路由的更多信息read this page on Microsoft Docs

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 2019-05-30
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多