【发布时间】:2019-11-23 05:32:32
【问题描述】:
我在 Angular 8 中工作并在 .net core 2.2 中使用 web.api
我有一个包含一些“常规”输入、一个文件和多选复选框的表单。
问题是多选复选框,我把它变成了一个数字数组。在将数据发布到服务器之前,我将 FormGroup 转换为 FormData 并手动添加文件以及来自多选复选框的整数数组:
data.append('locationsSecondaryIds',
new Blob( [ JSON.stringify(this.profilePersonalData.locationsSecondaryIds)], { type : 'application/json' } ) );
if (this.file) {
data.append('document', this.file, this.file.name);
}
locationsSecondaryIds 是一个数字[]。
我也尝试过忽略 Blob 并将其作为 [1,1] 发送,但是当服务器到达服务器时,它无法将其转换为列表
有什么好的建议吗?
提前非常感谢:-)
【问题讨论】:
-
你能解释更多你想要做什么吗?您是否将多个选中的复选框值作为数组?如果数组正在获取,那么您必须将数组数据附加到表单数据然后想要将数据发送到服务器?
-
非常感谢您的回复。问题是在将数组作为表单数据([FromForm])发布时在服务器上接收数组,我这样做是因为我也在发送文件。
-
您从客户端发送的数据类型也必须由服务器相同类型的数据处理。例如,如果您从客户端发送
Application/Json类型的数据,那么服务器必须具有该数据的设置才能正确处理它。 blob 类型也一样 -
只要我不包含数组,它就可以正常工作。在 Api 中我使用 [Consumes("multipart/form-data")]
标签: arrays angular typescript http-post asp.net-core-webapi