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

时间:2019-05-30 11:50:15

标签: asp.net-web-api swagger asp.net-web-api-routing swashbuckle attributerouting

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

我在产品控制器上遇到此错误,因此为了调查该问题,我在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“

1 个答案:

答案 0 :(得分:0)

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

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

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

希望这会对某人有所帮助。