我有两个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";
}
有没有办法使用多个get方法来使用这样的路由
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";
}