Angular - вызов веб-интерфейса HttpPost со строкой FromBody - тело всегда равно нулю - PullRequest
0 голосов
/ 07 января 2019

Я действительно думал, что это очень просто, но я не могу получить эту работу.

У меня есть c # web api со следующим mthod:

[HttpPost]
public IHttpActionResult UpdateTaskComment(int id,[FromBody]string comment)
{
     //do something
}

С клиента, использующего угловой httpClient, я пытаюсь вызвать метод веб-API:

let reqHeaders = new HttpHeaders().set('Content-Type','application/json');
this.http.post(`${BASE_URL}/UpdateTaskComment?id=${id}`,comment,{headers:reqHeaders})
         .subscribe(...)
         //catch error

Когда звонок поступает на сервер, идентификатор в порядке, но комментарий всегда нулевой.

Примечания:

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

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 14 января 2019

Ну, в конце концов, это очень простой ответ:

просто используйте JSON.stringify для строкового объекта

let reqHeaders = new HttpHeaders().set('Content-Type','application/json');
this.http.post(`${BASE_URL}/UpdateTaskComment?id=${id}`,JSON.stringify(comment),{headers:reqHeaders})
         .subscribe(...)
         //catch error
...