Я долго борюсь с этой проблемой.
У меня есть клиентское приложение с Angular 6 и WebApi, созданное с помощью ASP Core 2.1.
Для моего запроса POST я делаю что-то вроде этого.
const params = {
TestData: newActions,
ExportAndExecute: true
};
this.httpClient.post('/tests/export', params, {headers: {}}).subscribe((result) => {
console.log(result);
});
где метод httpClient.post:
post(route: string, params: any, headers: object) {
return new Observable<any>(subscriber => {
this.httpClient.post<any>(this.baseUrl + route, params, headers).subscribe((result) => {
subscriber.next(result);
}, (error: Response) => {
this.handleRequestError(error);
});
});
}
Действие моего контроллера API выглядит следующим образом:
[HttpPost]
[Route("/api/[controller]/export")]
[Authorize(AuthenticationSchemes = "JwtBearer")]
public async Task<HttpStatusCode> ExportTest( [FromBody] ExportTestModel model)
{
var result = HttpStatusCode.MisdirectedRequest;
}
А модель класса:
public class ExportTestModel
{
public List<BsonDocument> TestData { get; set; }
public bool ExportAndExecute { get; set; }
}
Я не знаю, почему каждый раз, когда я отправляю данные от клиента, в действии контроллера это значение равно нулю. Я пытался отправить его как строковый объект, получить в контроллере как object
или JObject
, но ничего не работает, как ожидалось.
Я могу добавить, что если я получаю данные как JObject
, я могу видеть их правильно, но я не хочу делать это таким образом.
Я чувствую себя глупо, но, возможно, кто-то может указать мне, что я делаю неправильно в моем подходе.