Установка фиксированного значения маршрута в. NET Core's CreatedAtAction / CreatedAtRoute - PullRequest
2 голосов
/ 10 марта 2020

У меня есть веб-API, который позволяет использовать базовый c CRUD с использованием GET / POST / PUT, но также содержит подобъекты, доступ к которым осуществляется через /apipath/MyObject/{objectId}/SubObject/{subObjectId}

При добавлении подобъекта используется этот метод

    [HttpPost]
    [Route("{id}/Members")]
    [Produces(typeof(TeamMember))]
    public IActionResult AddTeamMember(Guid id, [FromBody] TeamMember teamMember)
    { 
      //some processing here.
      return CreatedAtAction(nameof(GetMember), new { id, memberId = teamMember.Id }, teamMember);
    }

Метод GetMember выглядит следующим образом

    [HttpGet]
    [Route("{id}/Members/{memberId}")]
    public IActionResult GetMember(Guid id, Guid memberId)
    { //processing here
    }

Вызов CreatedAtAction в AddTeamMember создает

'System.InvalidOperationException': ни один маршрут не соответствует предоставленным значениям.

Если я изменю тэг Route на GetMember, чтобы исключить часть участников, это сработает. Итак, как мне сказать CreatedAtAction, что между id и memberId?

должен быть Members?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...