Angular - 使用 FromBody 字符串调用网络 api HttpPost - 正文始终为空
Angular - calling web api HttpPost with FromBody string - body is always null
我真的以为这很简单,但我做不到。
我有一个 c# web api,方法如下:
[HttpPost]
public IHttpActionResult UpdateTaskComment(int id,[FromBody]string comment)
{
//do something
}
从客户端,使用 angular httpClient,这就是我尝试调用 Web api 方法的方式:
let reqHeaders = new HttpHeaders().set('Content-Type','application/json');
this.http.post(`${BASE_URL}/UpdateTaskComment?id=${id}`,comment,{headers:reqHeaders})
.subscribe(...)
//catch error
当调用"arrives"到服务器时id没问题,但是注释总是空的。
备注:
- 我尝试将 FromBody 用于简单字符串的原因是它可能很长。
- 我知道我可以用模型包裹字符串并且它会起作用,但我想知道我是否缺少这样做的方法
我做错了什么?
嗯,最后是一个很简单的答案:
只需在字符串对象上使用 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
我真的以为这很简单,但我做不到。
我有一个 c# web api,方法如下:
[HttpPost]
public IHttpActionResult UpdateTaskComment(int id,[FromBody]string comment)
{
//do something
}
从客户端,使用 angular httpClient,这就是我尝试调用 Web api 方法的方式:
let reqHeaders = new HttpHeaders().set('Content-Type','application/json');
this.http.post(`${BASE_URL}/UpdateTaskComment?id=${id}`,comment,{headers:reqHeaders})
.subscribe(...)
//catch error
当调用"arrives"到服务器时id没问题,但是注释总是空的。
备注:
- 我尝试将 FromBody 用于简单字符串的原因是它可能很长。
- 我知道我可以用模型包裹字符串并且它会起作用,但我想知道我是否缺少这样做的方法
我做错了什么?
嗯,最后是一个很简单的答案:
只需在字符串对象上使用 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