我有一个ASP.Net Core和Angular项目。我正在尝试做一个非常简单的操作,从Angular发布JSON数据格式到后端ASP.Net Core。该流程似乎有效,它在后端调用了正确的Action,但是数据传递为空。感谢我可以获得的任何帮助。谢谢
在前端,我有一个简单的对象来保存数据,并在构造函数中将其转换为JSON。我验证了在http.post调用中数据部分包含JSON信息。因此,在jsonMessageFormat下面的调用中,具有正确的信息。
this._http.post(this._baseUrl + 'fabAutomation/PostTest',
this.jsonMessageFormat, this.config).subscribe(result => {
this._returnedResult = result;
}, error => console.error(error));
[在后端,我试图将PostTest Action设置为接受两个:1.字符串2. [FromBody]格式从JSON转换为模型
均无,该选项有效。并且在后端操作中,接收到的数据为空。
在前端:
fabAutomationJsonMessage: any = [{ "maskID": "AAAA", "recipeName":
"XXXX", "JobTypeCduOrReg": "reg", "cduRevNumber": "0", "regRevNumber":
"0", "recipeState": null, "reticleAvailability": "eee", "dateTime":
"ddd" }];
jsonMessageFormat: JSON;
config: any = new HttpHeaders().set('Content-Type', 'application/json')
.set('Accept', 'application/json')
constructor(http: HttpClient, @Inject('BASE_URL') baseUrl: string)
{
this.jsonMessageFormat = <JSON>this.fabAutomationJsonMessage;
this._http = http;
this._baseUrl = baseUrl;
}
forSubmitOnClick() {
this._http.post(this._baseUrl + 'fabAutomation/PostTest',
this.jsonMessageFormat, this.config).subscribe(result => {
this._returnedResult = result;
}, error => console.error(error));
//在后端:
//在控制器处,定义以下操作,fabAutomationMessageVMOBJ始终为null
[HttpPost("[action]")]
public IActionResult PostTest([FromBody] fabAutomationMessageVM
fabAutomationJsonMessageVMOBJ)
{
//removed implementation for simplicity
//for response simply return the same information
return Json(fabAutomationJsonMessageVMOBJ);
}
由于整个流程都在工作,并且http.post包含JSON格式的数据(非null),所以我希望此数据将以none-null的形式传递到后端。
您的asp.net核心网络api收到模型fabAutomationMessageVM
的实体
public IActionResult PostTest([FromBody] fabAutomationMessageVM fabAutomationJsonMessageVMOBJ)
但是您为fabAutomationJsonMessage
放置了一个角度数组,当我测试该数组时会出现400
错误,请尝试删除[]
fabAutomationJsonMessage: any = {
"maskID": "AAAA",
"recipeName":
"XXXX", "JobTypeCduOrReg": "reg",
"cduRevNumber": "0",
"regRevNumber": "0",
"recipeState": null,
"reticleAvailability": "eee",
"dateTime": "ddd"
};
[首先,我要感谢大家的帮助,特别是对邢邹的陪伴。我发现问题出在viewModel上。尽管我宣布班级公开,但我发现我也必须宣布每个成员都公开。