将文件和字符串数据附加到 Angular 9 中的 FormData 对象

Appending both a file and string data to a FormData object in Angular 9

我正在从 Angular 应用程序向 ASP .Net Core 中的控制器发送一个 FormData 对象。在这个 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>();