Я сталкиваюсь с этой проблемой. У меня есть эта вложенная модель внутри моего файла js
var request={
idCliente:form.idCliente,
appUserId:user.data.id,
idFiliale:user.data.idFiliale,
idSuggeritore:form.idSuggeritore,
contrattoLuceRequest:{
numeroContratto:form.contratti[0].numeroContratto,
idTipoContratto:form.contratti[0].idTipoContratto,
idTipoOperazione:form.contratti[0].idTipoOperazione,
idStatoContratto:form.contratti[0].idStatoContratto,
note:form.contratti[0].note,
numeroPod:form.contratti[0].contrattoLuce.numeroPod,
allegati:form.contratti[0].allegatiContratto
},
formFiles:form.contratti[0].allegatiContratto
}
свойства "allegati" объекта "contrattoLuceRequest" и "formFiles" объекта "запрос", представляют собой набор файлов, загруженных с компонентом Материал Ui Dropzone. Я должен отправить эту модель на мой net core 2.2 web api backend. Это сервис, который я использую для создания своего объекта formData. В этом тесте я игнорирую другие свойства ... Я фокусирую свой тест только на свойствах "formFiles" и "allegati".
let f = new FormData();
for (var key2 in interazione.contrattoLuceRequest.allegati) {
f.append("formFiles", interazione.contrattoLuceRequest.allegati[key2]);
}
for (var key3 in interazione.contrattoLuceRequest.allegati) {
f.append("interazione.contrattoLuceRequest.allegati",
interazione.contrattoLuceRequest.allegati[key3]);
}
Я отправляю все на сервер с топором ios
axios.post('/Interazioni',f,{
headers:{
'Content-Type':'multipart/form-data'
}
}).then(response => {
resolve(response);
}).catch(err=>{
return reject(err);
})
И это. net core 2.2 web api
[HttpPost]
public async Task<IActionResult> AddInterazione([FromForm] InterazioneRequest interazioneRequest)
{
try
{
if (interazioneRequest == null)
return BadRequest();
await this.interazioniService.AddInterazione(interazioneRequest);
return Ok();
}
catch (ArgumentException ex)
{
return StatusCode(409, ex.Message);
}
catch (Exception ex)
{
return StatusCode(500, ex.Message);
}
}
Это модель сервера "InterazioneRequest"
public class InterazioneRequest
{
public int? Id { get; set; }
public int IdCliente { get; set; }
public int AppUserId { get; set; }
public int IdFiliale { get; set; }
public int? IdSuggeritore { get; set; }
public ContrattoLuceRequest ContrattoLuceRequest { get; set; }
public ContrattoGasRequest ContrattoGasRequest { get; set; }
public ContrattoDualRequest ContrattoDualRequest { get; set; }
public ContrattoMultiEleRequest ContrattoMultiEleRequest { get; set; }
public ContrattoMultiGasRequest ContrattoMultiGasRequest { get; set; }
public IFormFileCollection formFiles { get; set; }
}
И это " ContrattoLuceRequest », которая используется для нашего теста
public class ContrattoLuceRequest
{
public int? Id { get; set; }
public string NumeroContratto { get; set; }
public string NumeroPod { get; set; }
public int IdStatoContratto { get; set; }
public int IdTipoContratto { get; set; }
public int IdTipoOperazione { get; set; }
public string Note { get; set; }
public IFormFileCollection Allegati { get; set; }
}
А теперь проблема. Из внешнего интерфейса я отправляю все свои данные на сервер, но только «formFiles» правильно ограничены ... вложенное свойство «Allegati» объекта «ContrattoLuceRequest» всегда равно нулю. Это ошибка, или я игнорирую что-то важное? Я также прикрепляю сюда скриншот запроса, отправленного на сервер, * Chrome Dev Tools. Большое вам спасибо