我不确定为什么我无法将数据从正文传递到我的API?
以下是随附的代码。在调试中,API补丁方法确实被命中,但所有属性都为空/空。
我可以使用Fiddler验证API的工作原理。所以我必须错过使用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);
};
答案 0 :(得分:0)
对于遇到同样问题的人。我能够解决这个问题:
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);
答案 1 :(得分:-1)
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);