asp. net core 3 метод действия маршрутизации - PullRequest
1 голос
/ 02 мая 2020

Я использую asp. net core 3, и у меня возникла проблема с маршрутизацией на два моих метода действия ниже. Я хотел бы иметь возможность получить доступ к методам действий.

    [Route("api/[controller]")]
    [ApiController]
    public class EventsController : ControllerBase


    [HttpGet("{id}")]
    [ProducesResponseType(StatusCodes.Status200OK)]
    [ProducesResponseType(StatusCodes.Status404NotFound)]
    public async Task<ActionResult<Book>> Details(string id)
    {
        var values = await _Book.Get(id);

        return Ok(values);
    }

    [HttpGet("{filter}")]
    public async Task<ActionResult<Book>> Filter(string filter)
    {
        var values = await _Book.Get(id);

        return Ok(values);
    }

В моем файле запуска у меня есть эта маршрутизация

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });

1 Ответ

0 голосов
/ 02 мая 2020

Существует неоднозначное соответствие между действиями Details и Filter, поскольку запрос соответствует нескольким конечным точкам, но вы можете использовать пользовательское route для каждого действия или просто действие Filter, например:

[HttpGet("{id}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<ActionResult<Book>> Details(string id)
{
    return Ok();
}

[HttpGet("filter/{filter}")]
public async Task<ActionResult<Book>> Filter(string filter)
{
    return Ok();
}

И вызовите методы, такие как:

Details ==> https://localhost:44313/api/events/1

Filter ==> https://localhost:44313/api/events/filter/1

Я надеюсь, что это поможет вам решить проблему

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