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

问题描述 投票:0回答:1

我正在从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传递给我的控制器?

angular asp.net-core form-data
1个回答
0
投票

已解决:

如上所述,控制器仅从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>();
© www.soinside.com 2019 - 2024. All rights reserved.