API не получает параметры от HttpClient - PullRequest
0 голосов
/ 30 апреля 2018

Я не уверен, почему я не могу передать данные из тела в мой API?

Ниже приведен код. При отладке метод API-патча действительно срабатывает, но все свойства пусты / нулевые.

Я могу убедиться, что API работает, используя Fiddler. Так что я должен что-то упустить с Angular HttpClient.

API:

[HttpPatch]
public async Task<IActionResult> Update([FromBody]MyParameters parameters)
{
// Do Stuff
}

MyParameters

public class MyParameters
    {
        public Guid Id { get; set; }

        [Required]
        public string Name { get; set; }

        [Required]
        public string Value { get; set; }

    }

Машинопись

headers = new HttpHeaders().set("Content-Type", "application/json");

  updateItem(myItem: MyItem) {
    let body = JSON.stringify(myItem);
    console.log(body);

    return this.http      
      .patch(this.ApiUri,
        {
          "Id": myItem.Id,
          "Name": myItem.Name,
          "Value": myItem.Value
        }, { headers: this.headers })
      .catch(this.handleError);
  };

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Для тех, кто сталкивается с той же проблемой. Я смог решить это следующим образом:

    let body = JSON.stringify(myItem);

    const options = {
        headers: new HttpHeaders({ 'Content-Type': 'application/json' }),
      };

    return this.http      
      .patch(this.ApiUri, body, options)  
      .catch(this.handleError);
0 голосов
/ 30 апреля 2018
let headers: Headers = new Headers({ 'Content-Type': 'application/json' });
let options: RequestOptions = new RequestOptions({ headers:headers });


return this.http      
      .patch(this.ApiUri,
        {
          "Id": myItem.Id,
          "Name": myItem.Name,
          "Value": myItem.Value
        }, options)
      .catch(this.handleError);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...