C# API未从HttpClient获取参数

C# API未从HttpClient获取参数,c#,angular,rxjs,C#,Angular,Rxjs,我不确定为什么不能将数据从主体传递到API 下面是随附的代码。在调试中,API补丁方法确实会被命中,但所有属性都为空/null 我可以通过使用Fiddler来验证API是否有效。所以我一定是错过了一些关于角度HttpClient的东西 API: 打字稿 headers = new HttpHeaders().set("Content-Type", "application/json"); updateItem(myItem: MyItem) { let body = JSON.st

我不确定为什么不能将数据从主体传递到API

下面是随附的代码。在调试中,API补丁方法确实会被命中,但所有属性都为空/null

我可以通过使用Fiddler来验证API是否有效。所以我一定是错过了一些关于角度HttpClient的东西

API:

打字稿

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);
  };

对于遇到相同问题的任何人。我通过以下方式解决了这个问题:

    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);

@xxbbcc,因为前两段代码是C#…如果您在发送请求时在浏览器的“开发人员工具”网络面板中进行检查,那么数据是成功发送的,还是为空/空?这与OPs代码有什么不同?你不能在没有解释的情况下将代码转储到一个答案中。看起来他正在使用RequestOptions,但是我在试图模仿他的代码时遇到了Typscript错误。
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);
  };
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);
    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);