Angular httpclient.post将JSON对象发送到ASP.Net Core Action,在接收到的后端数据为null时

问题描述 投票:0回答:2

我有一个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的形式传递到后端。

angular asp.net-core-mvc http-post
2个回答
0
投票

您的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" 
 };

0
投票

[首先,我要感谢大家的帮助,特别是对邢邹的陪伴。我发现问题出在viewModel上。尽管我宣布班级公开,但我发现我也必须宣布每个成员都公开。

© www.soinside.com 2019 - 2024. All rights reserved.