.net core 未命中.Net核心Web API后路由终结点

.net core 未命中.Net核心Web API后路由终结点,.net-core,asp.net-web-api-routing,webapi,.net Core,Asp.net Web Api Routing,Webapi,我定义了以下.Net核心API路由 [HttpPost("/addproduct")] [Consumes("application/json")] public ActionResult<IEnumerable<ProductDTO>> AddProduct([FromBody] ProductDTO){} 我这样称呼它:https://localhost:xxxxx/api/products/addproduct我将向它传递一

我定义了以下.Net核心API路由

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

我这样称呼它:
https://localhost:xxxxx/api/products/addproduct
我将向它传递一个表示productDTO的有效负载。为什么该路由未被命中?

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

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

https://localhost:xxxx/addproduct
即使您使用令牌替换控制器名称,但通过使用前导斜杠,您在AddProduct方法上覆盖了该路由

要正确路由到该方法,请删除前导斜杠,如下所示:

    [HttpPost("addproduct")]
    [Consumes("application/json")]
    public ActionResult<IEnumerable<ProductDTO>> AddProduct([FromBody] ProductDTO productDto)
[HttpPost(“addproduct”)]
[使用(“应用程序/json”)]
公共行动结果添加产品([FromBody]ProductDTO ProductDTO)

有关属性路由或控制器路由的更多信息,请参见HttpPost上使用的路由属性

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

https://localhost:xxxx/addproduct
即使您使用令牌替换控制器名称,但通过使用前导斜杠,您在AddProduct方法上覆盖了该路由

要正确路由到该方法,请删除前导斜杠,如下所示:

    [HttpPost("addproduct")]
    [Consumes("application/json")]
    public ActionResult<IEnumerable<ProductDTO>> AddProduct([FromBody] ProductDTO productDto)
[HttpPost(“addproduct”)]
[使用(“应用程序/json”)]
公共行动结果添加产品([FromBody]ProductDTO ProductDTO)
有关属性路由或控制器路由的更多信息,请使用
[HttpPost(“addproduct”)]
使用
[HttpPost(“addproduct”)]