Непонимание ядра .net [FromQuery] или неправильная реализация сопоставления маршрутов - PullRequest
0 голосов
/ 13 июня 2019

У меня есть следующий запрос:

 https://localhost:44341/odata/Events/?StartDate=2019-05-26T04:00:00.000Z&EndDate=2019-07-07T04:00:00.000Z

В контроллере у меня есть следующее:

 [EnableQuery]
    public IActionResult Get([FromQuery]string StartDate, [FromQuery]string EndDate)
    {
        DateTime sDate = Convert.ToDateTime(StartDate);
        DateTime eDate = Convert.ToDateTime(EndDate);
        return Ok(_dbContext.Events.Select(c => c.StartTime >= sDate && c.EndTime <= eDate));
    }


    [EnableQuery]
    public IActionResult Get()
    {
        return Ok(_dbContext.Events);
    }

Я ожидаю, что запрос будет использовать первый Get с началом и концомТитулы.Тем не менее, он всегда использует по умолчанию.Я не уверен, что я сделал неправильно.

Любое просветление будет оценено.

Спасибо

Вот некоторые результаты отладки:

Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: Request starting HTTP/1.1 GET http://localhost:44341/odata/Events/?StartDate=2019-05-26T04:00:00.000Z&EndDate=2019-07-07T04:00:00.000Z
Microsoft.AspNetCore.Cors.Infrastructure.CorsService:Information: CORS policy execution successful.
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Route matched with {action = "Get", controller = "Events"}. Executing controller action with signature Microsoft.AspNetCore.Mvc.IActionResult Get() on controller DevOdata.Controllers.EventsController (DevOdata).

1 Ответ

0 голосов
/ 14 июня 2019

Похоже на проблему с маршрутизацией:

https://github.com/OData/WebApi/issues/1794

Жаль, что боги поиска не выдвинули эту ссылку на поверхность вчера.3-й результат по моему поиску сегодня.

...