ASP .net ядро ​​HttpGet с параметром, результатом которого является неправильный запрос - PullRequest
0 голосов
/ 21 ноября 2018

Итак, у меня есть сервис, использующий Axios для вызова моего C # API, так как я хочу выбрать конкретные данные, я использую метод get с параметром

, вот мой сервис

let response = await Axios.get('/api/get-report', {
        params: filter
    });

, а вот мойобъект фильтра в машинописной модели

export interface FilterModel {
  employeeId?: string;
  Month?: Date;
  from?: Date;
  to?: Date;
}

на сервере

public class AttendanceReportFilterModel
{
    public string EmployeeId { set; get; }
    public DateTime? Month { set; get; }
    public DateTime? From { set; get; }
    public DateTime? To { set; get; }
}

и, наконец, вот мой C # API

[HttpGet("get-report")]
    public async Task<IActionResult> GetReport(FilterModel filter)
    {
        var Detail = await Service.GetReport(filter);
        if (Detail == null)
        {
            return StatusCode(500, "Not Found");
        }

        return Ok(Detail);
    }

всякий раз, когда я вызываю свой сервис, он всегда возвращаетсяПлохой запрос кто-нибудь знает почему?и как это исправить?

1 Ответ

0 голосов
/ 21 ноября 2018

Попробуйте добавить

[FromQuery]

public async Task<IActionResult> GetReport([FromQuery] FilterModel filter)

Поэтому, поскольку вы делаете привязку к объекту, вам нужно сказать, где их взять https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-2.1#customize-model-binding-behavior-with-attributes.

Или вы можете сделать это только с параметрами

public async Task<IActionResult> GetReport(string EmployeeId, DateTime? Month = null, DateTime? FromMonth = null, DateTime? ToMonth = null)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...