asp.net核心发布api始终接收null

时间:2018-11-13 09:30:54

标签: c# asp.net-core .net-core angular6

这是我的6角代码

saveQuestion(value : string) : Observable<string> {
    console.log(value)
    let params = new HttpParams();
    params = params.set('id', value);
    return this._http.post<string>(this.subjectAPi + 'api/Question/Save/', {params});
}

下面是我的.net核心代码

[HttpPost("[action]")]
public IActionResult Save([FromBody]string id)
{
    Question ob = new Question();
    ob.update(id)  // id is always null
    return Ok("1");
}

ID始终为空。建议将不胜感激

2 个答案:

答案 0 :(得分:0)

如果我没有记错的话,默认情况下,ASP.NET Core不会 不是 使用camelCasing。尝试将id中的HttpParams重命名为Id

saveQuestion(value : string) : Observable<string> {
    let params = new HttpParams();
    params = params.set('Id', value);
    return this._http.post<string>(this.subjectAPi + 'api/Question/Save/', {params});
}

答案 1 :(得分:0)

HttpParams用于准备URL编码的参数,如果您想在JSON中发布正文,则不需要。尝试仅简单地创建您的数据,例如:

let body = { id: value }
this._http.post<string>(this.subjectAPi + 'api/Question/Save/', body);

如果您真的想将正文作为URL编码数据发布,请尝试设置Content-Type请求标头:

this._http.post<string>(this.subjectAPi + 'api/Question/Save/', params.toString(), {
    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
});