У меня есть метод в файле typeScript:
searchUsers() {
this.filterParams = [
{ parameterName: 'FirstName', filterOperator: 'Like', parameterValue: this.firstName },
{ parameterName: 'LastName', filterOperator: 'Like', parameterValue: this.lastName },
{ parameterName: 'UserName', filterOperator: 'Like', parameterValue: this.userName },
{ parameterName: 'Email', filterOperator: 'Like', parameterValue: this.email }
];
this.service.getUsers(this.id, this.filterParams);
}
, который вызывает метод обслуживания:
getUsers(id, filterParams) {
let params = new HttpParams()
.set('id', id);
.set('filterParams', filterParams);
this.http.get(this.rootURL + '/user/getUsers', { params: params })
.subscribe((res: any) => {
this.users = res.users;
};
});
}
Модель FilterParameter в ядре веб-API:
public class FilterParameter
{
public string ParameterName;
public FilterOperator FilterOperator;
public string ParameterValue;
}
Мой основной метод веб-API срабатывает после нажатия на кнопку поиска в угловом. Это мой метод в ядре web api:
[Route("getUsers/{id?}/{filterParams?}")]
[HttpGet]
public ActionResult GetUsers(int id, [FromQuery] List<FilterParameter> filterParams)
{
try
{
_logger.LogInformation("Geting all users from the database");
var users = _baseBL.GetUsers(id, filterModel);
return Ok(new { users = users.Results, usersCount = users.RowCount});
}
catch (Exception ex)
{
_logger.LogError($"Something went wrong: {ex}");
return StatusCode(500, "Internal server error");
}
}
Идентификатор хорош, но проблема в том, что мои filterParams - пустой список. Есть идеи почему?