Как разрешить исключительную ситуацию Web API AmbiguousActionException в основном веб-интерфейсе dotnet? - PullRequest
0 голосов
/ 01 мая 2019

У меня есть два метода Get. Я хочу получить доступ к этому, используя следующие URL

Но я пытаюсь назвать это, я получаю следующее исключение

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

1 Ответ

0 голосов
/ 01 мая 2019

Нет ничего из коробки, предоставленной ядром ASP.NET, чтобы помочь вашему делу.Как предлагается в одном из комментариев, вы должны сделать параметр status равным nullable и использовать его в методе действия, чтобы решить, что делать дальше.Как то так:

[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";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...