ASP.NET CORE WEB-API中的多个HTTPGET方法

问题描述 投票:1回答:1

[我开始在ASP.NET Core WEB API上进行实验,并在编写一个控制器来协助多个get请求(这些请求因参数数量而异时,出现以下错误。

Microsoft.AspNetCore.Routing.Matching.AmbiguousMatchException:请求匹配多个端点。符合条件:

PaperRocket.Controllers.Products.ProductsController.GetProducts(PaperRocket)PaperRocket.Controllers.Products.ProductsController.GetProduct(PaperRocket)在Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ReportAmbiguity(CandidateState []候选人国家)Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ProcessFinalCandidates(HttpContexthttpContext,CandidateState []候选人状态)Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.Select(HttpContexthttpContext,CandidateState []候选人状态)Microsoft.AspNetCore.Routing.Matching.DfaMatcher.MatchAsync(HttpContexthttpContext)Microsoft.AspNetCore.Routing.Matching.DataSourceDependentMatcher.MatchAsync(HttpContexthttpContext)Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContexthttpContext)Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext上下文)

HEADERS=======接受:/接受编码:gzip,deflate,br缓存控制:无缓存连接:keep-alive主机:localhost:54967用户代理:PostmanRuntime / 7.24.1 Postman-Token:0f3ce4b4-283a-472b-9350-7b0cc02d31ae

所以,我的问题是,我们可以有多个get方法吗?>

  1. 其参数数量不同(在WEB-API中可能是这样)
  2. 无需使用HTTPGET(“ RouteConstraint”)-(我知道,它将起作用)
  3. 应该通过我们传递的参数来调用和标识各个方法
  4. 下面是我的代码:

    [HttpGet]
    public IEnumerable<Product> GetProducts()
    {
        return _Productcontext.GetProducts();
    }

    [HttpGet]
    public Product GetProduct([FromQuery(Name = "ProductCode")]string ProductCode)
    {
        return _Productcontext.GetProductByProductCode(ProductCode);
    }

最后,请引导我到任何最佳的模型绑定,在asp.net核心文章中进行介绍,以及它们与ASP.NET WEB-API有何不同。

我开始在ASP.NET Core WEB API上进行实验,并在编写一个控制器来协助多个get请求(这些参数因参数数量而异)时,出现以下错误。 Microsoft ....

asp.net-core routing asp.net-core-webapi http-get parameterbinding
1个回答
0
投票

Microsoft.AspNetCore.Routing.Matching.AmbiguousMatchException:该请求匹配了多个端点。

© www.soinside.com 2019 - 2024. All rights reserved.