我正在从Angular应用程序将FormData对象发送到ASP .Net Core中的控制器。在此FormData对象中,我想附加一个已上传到客户端的文件和一个项目ID。
uploadLink(files, projectId) {
if (files.length === 0) {
return;
}
const fileToUpload = files[0] as File;
const formData = new FormData();
formData.append('file', fileToUpload, fileToUpload.name);
formData.append('projectId', projectId);
return formData;
}
}
当数据发送到我的控制器时,我只能看到上传文件中的数据。项目ID根本没有传递到控制器。
// POST: FileExport/SetReconciliationCSV
[HttpPost("reconciliation")]
public async Task<IActionResult> SetReconciliation(IFormFile file)
{
fileName = file.FileName;
var records = new List<ReconciliationExportCsv>();
我正在使用IFormFile接收数据服务器端。我已经检查了客户端是否将正确的项目ID传递给要附加到FormData对象的'uploadLink'方法。为什么未将projectId传递给我的控制器?
已解决:
如上所述,控制器仅从FormData对象中请求文件。我可以通过添加参数'[FromForm] string projectId'来检索projectId到.net核心中的控制器。
// POST: FileExport/SetReconciliationCSV
[HttpPost("reconciliation")]
public async Task<IActionResult> SetReconciliation(IFormFile file, [FromForm]string projectId)
{
fileName = file.FileName;
string id = projectId;
var records = new List<ReconciliationExportCsv>();