我知道有很多标题相同的问题,但这是不同的。
我在产品控制器上遇到此错误,因此为了调查此问题,我在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”
问题是我有一个没有路由属性的公共方法。因此大张旗鼓地发现为空路由配置的GetProducts()方法有歧义。
将该公共方法标记为[NonAction]属性,并且已解决问题。
也可以将其标记为私有/受保护以解决此问题,但就我而言,这是一种接口方法。
希望这会帮助某人。