我在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);
}
);
从服务发送的数据(我可以检查数据的最后一个地方)
答案 0 :(得分:2)
问题似乎是由于控制器中的参数名称与请求中传递的参数名称不同。
在您的控制器中,框架试图绑定到的参数称为update
,但是您的请求显示您正在发送objCreateIntimation
。由于它们的名称不同,因此模型绑定器不知道objIntimation
应该绑定到objIntimation
。
给他们两个相同的名字,这应该为您解决这个问题。
答案 1 :(得分:1)
我曾经遇到过同样的问题,花了将近一天的时间才弄清其背后的原因,
请检查日期选择器及其值,并确保它不为null且其格式也正确。因为Firefox在这方面有点严格,而且日期选择器中的垃圾变化会使它为空。
希望它对您有帮助。