我最近从 .NET 6 升级到 .NET 8,其中接受
IFormFile
和 string
数据的现有 API 之一受到了影响,就像字符串数据变为空一样。据我所知,在 .NET 8 中不需要 [FromForm]
属性,因此我将其从 Angular UI 中删除并将其作为表单数据传递。不知道为什么数据仍然为空但文件已传递。谁能帮忙解决这个问题吗?
我的 API 示例
从 UI 我将作为表单传递
public async Task<ActionResult> upload(IFormFIle file, string data)
{
// ....
}
upload(file: File, data: string): Observable<any> {
const formData: FormData = new FormData();
formData.append('file', file, file.name);
formData.append('data', data);
return this.http.post(this.apiUrl, formData);
}
这基本上是 asp.net core Web API 文件上传和“表单数据”多个参数传递给方法的欺骗 .
您不能在控制器操作中使用多个表单参数(例如表单和正文参数)。您需要将参数封装到一个 param 对象中,如链接帖子中所述。