Присоединение файла и строковых данных к объекту FormData в Angular 9 - PullRequest
0 голосов
/ 24 апреля 2020

Я отправляю объект FormData на мой контроллер в ASP. Net Ядро из приложения Angular. В этом объекте FormData я хотел бы добавить файл, который был загружен на стороне клиента, и идентификатор проекта.

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;
  }
}

Когда данные отправляются на мой контроллер, я могу видеть данные только из загруженных файл. Идентификатор проекта вообще не передается в контроллер.

    // POST: FileExport/SetReconciliationCSV
    [HttpPost("reconciliation")]
    public async Task<IActionResult> SetReconciliation(IFormFile file)
    {
        fileName = file.FileName;

        var records = new List<ReconciliationExportCsv>();

Я использую IFormFile для получения стороны сервера данных. Я проверил на стороне клиента, что правильный идентификатор проекта передается методу uploadLink для добавления к объекту FormData. Почему проект не передается моему контроллеру?

1 Ответ

0 голосов
/ 24 апреля 2020

решено:

Как указано выше, контроллер запрашивал только файл из объекта FormData. Мне удалось получить идентификатор проекта, добавив параметр «[FromForm] string 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>();
...