Firefox的ASP.NET Core API POST参数始终为空

时间:2019-05-06 08:59:25

标签: ajax .net-core angular2-services

我在Angular2 Application中提交表单,并通过POST API to dotnet core backend发送数据。我创建了一个新表单,该表单可以与chrome一起使用,但是在Firefox上,我在POST API参数中收到了空值

我全都卡住了搜索内容以及搜索方式??我检查了所有可能的问题,但没有发现任何问题,因为App在chrome上运行正常,所有数据都是最新且正确的,但是单一表格无法在Firefox上运行

  

有人可以帮我做什么吗?因为我完全被困住了   不知道该怎么办?

我的端点是;

[HttpPost]
[Route("api/Intimation/SaveIntimation")]
public async Task<ActionResult> SaveIntimation([FromBody] ViewModelCreateIntimation objCreateIntimation)
{
    if (objCreateIntimation == null || objCreateIntimation.objIntimation == null)
            {

                return Ok("null received");
            }
           // remaining code
}

我在偏角侧的服务

saveIntimation(intiModel) {
console.log(intiModel);
return this.httpClient.post<ViewModelResponse>(this.baseUrl + this._SubmitIntimationUrl, JSON.stringify(intiModel), { headers: this.configurations.getHeaderWithAuth() });
  }

其中this._SubmitIntimationUrl"/api/Intimation/SaveIntimation"intiModel是我要传递的对象。

控制器功能-角度

this.intimationModel = this.admissionForm.value;
this.adminService.SubmitAdmissionIntimationService(this.createIntimationModel).subscribe(
  (response) => {
    this.responseModel = response;
    // further process
    },

  (error) => {

    this.notification.onClear();
    this.notification.onError(this.errorHandler.handleError(error).error, Constants.MESSAGE_ERROR);
  }
);

从服务发送的数据(我可以检查数据的最后一个地方)

Intimation Data

2 个答案:

答案 0 :(得分:2)

问题似乎是由于控制器中的参数名称与请求中传递的参数名称不同。

在您的控制器中,框架试图绑定到的参数称为update,但是您的请求显示您正在发送objCreateIntimation。由于它们的名称不同,因此模型绑定器不知道objIntimation应该绑定到objIntimation

给他们两个相同的名字,这应该为您解决这个问题。

答案 1 :(得分:1)

我曾经遇到过同样的问题,花了将近一天的时间才弄清其背后的原因,

请检查日期选择器及其值,并确保它不为null且其格式也正确。因为Firefox在这方面有点严格,而且日期选择器中的垃圾变化会使它为空。

希望它对您有帮助。