У меня есть папка как структурированный объект (древовидная структура папок с файлами в каждой папке).Я пытался отправить этот объект мне на сервер (сейчас .net core 2.2), но у меня возникла ошибка.
Я пытался отправить этот объект как FormData (потому что я работаю с файлом) и сериализовать в json, но в любомВ случаях, когда я работаю со смешанным (файлы и поля) объектом, я получаю объект со всеми полями нулевых значений.Попытка Преобразовать объект JS для формирования данных это решение, но действие контроллера не получает запрос.
Пример структуры объектов
let newFolder = {
name: name,
folders: [],
images: []
}
let newImage = {
name: file.name,
url: window.URL.createObjectURL(file),
file: file, //File from input
}
Как я пытался загрузить как FormData
var form_data = new FormData();
buildFormData(form_data, rootFolder);
console.log(form_data);
$.ajax({
url: 'myurl',
processData: false,
contentType: false,
data: form_data,
type: 'post'
});
function buildFormData(formData, data, parentKey) {
if (data && typeof data === 'object' && !(data instanceof Date) && !(data instanceof File)) {
Object.keys(data).forEach(key => {
buildFormData(formData, data[key], parentKey ? `${parentKey}[${key}]` : key);
});
} else {
const value = data == null ? '' : data;
formData.append(parentKey, value);
}
}
Ожидаемый результат: объект .net с IFormFile вместо файловых полей для полей изображений или информацией, что это невозможно.
Обновление: форма отправлена в контроллер, но ядро .net не может проанализироватьэто. (пробовал Отображение вложенных данных X-Form-Urlencoded в DTO в Asp.NET Core )