仅控制器中的一种GET方法,但尚未获得“ Swagger 2.0不支持:具有路径的多项操作”

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

我知道有很多标题相同的问题,但这是不同的。

我在产品控制器上遇到此错误,因此为了调查此问题,我在ASP.NET Web API 2中创建了一个演示控制器。DemoController.cs

namespace WMWebAPIControllers.Controllers
{
[RoutePrefix("api/Demo")]
public class DemoController : ControllerBase
{
    [HttpGet]
    [Route("")]
    public async Task<IHttpActionResult> GetProducts(int CatalogType, string ProductNo)
    {
        return Ok();
    }
}}

奇怪的是演示控制器只有一种方法。没有办法招摇摇晃地找找话。

我不明白问题所在。以下是大张旗鼓的错误。

500:{“ message”:“发生错误。”,“ exceptionMessage”:“ Swagger 2.0不支持:使用路径'api / Demo'和方法'GET'的多项操作。请参阅配置设置-\” ResolveConflictingActions \“可能的解决方法”,“ exceptionType”:“ System.NotSupportedException”

asp.net-web-api swagger asp.net-web-api-routing swashbuckle attributerouting
1个回答
0
投票

问题是我有一个没有路由属性的公共方法。因此大张旗鼓地发现为空路由配置的GetProducts()方法有歧义。

将该公共方法标记为[NonAction]属性,并且已解决问题。

也可以将其标记为私有/受保护以解决此问题,但就我而言,这是一种接口方法。

希望这会帮助某人。

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