如何在dotnet核心Web API中解决Web API AmbiguousActionException?

时间:2019-05-01 06:14:10

标签: asp.net-web-api .net-core

我有两个Get方法。我想通过使用以下网址来访问它

但是我试图称其为我正在跟踪异常

AmbiguousActionException:多个动作匹配。以下动作与路线数据匹配,并且满足所有约束条件:

     // GET api/values/5
        [HttpGet("{id}")]
        public ActionResult<string> Get(SomeEnum id)
        {
           //somecode
            return "value";
        }

        [HttpGet("{id}")]
        public ActionResult<string> Get(SomeEnum id,int status)
        {


//somecode
            return "value";
        }

有什么办法可以将这样的溃败与多重获取方法一起使用

1 个答案:

答案 0 :(得分:0)

ASP.NET核心提供的任何可用的开箱即用的东西都可以帮助您解决问题。如其中一项注释中所建议,您应将status参数设置为nullable,并在action方法中使用它来决定下一步要做什么。像这样:

[HttpGet("{id}")]
public ActionResult<string> Get(SomeEnum id,int? status)
{
    if(status == null)
    {    
        //perform usual logic which requires only id
    }
    else
    {
        //perform logic or call a method which requires both id and status
    }
    return "value";
}