Мне известно о загрузке одного файла и привязке к модели запроса API, но мне не удается добиться загрузки нескольких файлов с дополнительной информацией в формате JSON.
Вот мои модели:
OilTankImageDTO.cs:
public class OilTankImageDTO
{
public IFormFile Image { get; set; }
public string ImageCode { get; set; }
public string Title { get; set; }
public string AltText { get; set; }
public string Caption { get; set; }
}
TankPhotoTool2Response.cs:
public class TankPhotoTool2Response
{
public IEnumerable<OilTankImageDTO> Images { get; set; }
public int DeliveryId { get; set; }
public string AuthoId { get; set; }
public string TownHash { get; set; }
}
Я пытаюсь связать эту модель запроса с действием POST. До сих пор я исследовал доступные ответы на Stack Overflow, но не вижу, чтобы эти ответы работали.





Я сделал небольшой рабочий образец, на который вы могли бы ссылаться:
public class OilTankImageDTO
{
public IFormFile Image { get; set; }
public string Title { get; set; }
}
public class TankPhotoTool2Response
{
public IEnumerable<OilTankImageDTO> Images { get; set; }
public int DeliveryId { get; set; }
}
Контроллер
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
[HttpPost("test")]
public void test(TankPhotoTool2Response model)
{
var result = model;
}
}
Что вы пробовали? То, что вы нашли, работает, хотя и не похоже на то, что вы ожидали.
IFormFileнаходится на сервере только для представления файлов, загруженных через элементinput type='file'в форму. Форма может иметь несколько полей, и все они (включая файлы) загружаются с помощью запросаmultipart/form-data. Это означает, что вам нужно отправить MultipartFormDataContent с нужным файлом и данными. Вы не можете использоватьIFormFileв модели запроса.