JSON 数据从 Angular 2 前端发布到 Asp.Net 核心网络 api - 失去价值
JSON data posts from Angular 2 front end to Asp.Net Core web api - loses values
我正在从 Angular 2 前端发送值,如下所示:
censusManagementSearch(search: any): Observable<any> {
let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem('token') });
let options = new RequestOptions({ headers: headers });
let body = JSON.stringify({ practice: search.practice, location: search.location, name: search.name });
return this.http.post(this._api.apiUrl + 'censusmanagement', body, options)
.map((response: Response) => {
return response;
})
.catch((err: any) => {
return Observable.throw(err.json().error || 'Server error');
});
}
一切正常。它将转到 C# 后端,如下所示。如果重要的话,它是一个 ASP.Net 核心网络 api
[HttpPost]
public IActionResult PostCensusManagement([FromBody] int practice, int location, string name)
当我在此设置断点时,整数的值为 0,字符串的值为 ""。我试过去掉 [FromBody]
以及用其他选项替换它。每次值都是空白。
这是一张显示 Chrome 中发送的值的图像
我找到了答案。我会把它留在这里,以防其他人遇到这个问题。为了让网络 api 看到数据,我必须为其创建一个 class。
public class CensusSearch
{
public int location { get; set; }
public int practice { get; set; }
public string name { get; set; }
}
并将控制器更改为:
[HttpPost]
public IActionResult PostCensusManagement([FromBody] CensusSearch search)
我正在从 Angular 2 前端发送值,如下所示:
censusManagementSearch(search: any): Observable<any> {
let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem('token') });
let options = new RequestOptions({ headers: headers });
let body = JSON.stringify({ practice: search.practice, location: search.location, name: search.name });
return this.http.post(this._api.apiUrl + 'censusmanagement', body, options)
.map((response: Response) => {
return response;
})
.catch((err: any) => {
return Observable.throw(err.json().error || 'Server error');
});
}
一切正常。它将转到 C# 后端,如下所示。如果重要的话,它是一个 ASP.Net 核心网络 api
[HttpPost]
public IActionResult PostCensusManagement([FromBody] int practice, int location, string name)
当我在此设置断点时,整数的值为 0,字符串的值为 ""。我试过去掉 [FromBody]
以及用其他选项替换它。每次值都是空白。
这是一张显示 Chrome 中发送的值的图像
我找到了答案。我会把它留在这里,以防其他人遇到这个问题。为了让网络 api 看到数据,我必须为其创建一个 class。
public class CensusSearch
{
public int location { get; set; }
public int practice { get; set; }
public string name { get; set; }
}
并将控制器更改为:
[HttpPost]
public IActionResult PostCensusManagement([FromBody] CensusSearch search)