#javascript #asp.net-mvc-4
Вопрос:
Можно ли передать данные формы без использования FormData с помощью модели JavaScript. Поскольку в моей форме много элементов управления, я хотел бы использовать подход модели вместо FormData.
Есть ли способ передать выбранные файлы контроллеру без использования HttpPostedFileBase? У меня есть почти 10 различных классов, которые принимают HttpPostedFileBase
У меня есть следующий класс в c#
public class ArtGallery{
Public string GallerName {get;set;}
Public HttpPostedFileBase[] Documents {get;set;}
}
Эквивалентной моделью JavaScript является
class ArtGallery{
GallerName;
Documents[];
}
На моем сохранении формы вот как я это делаю
function saveFormData(){
let gallery = new ArtGallery();
gallery.GallerName = "Test";
$.each($("input[type=file]"), function (i, obj) {
$.each(obj.files, function (j, file) {
gallery.Documents.push(file);
});
});
saveToDb();
}
function saveToDb() {
let url = "/MyController/PostData/";
$.ajax({
url: url,
type: 'POST',
async: false,
data: '{gallery : ' JSON.stringify(gallery) '}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (result) {
},
error: function (request) {
}
});
}
Мой контроллер выглядит следующим образом, который запускается, но документы, которые я не могу получить
[HttpPost]
public JsonResult PostUserData(ArtGallery gallery) {
}
Комментарии:
1. Как выглядит ваша модель документа? что вы видите, когда пишете
JSON.stringify(console.gallery.Documents)
2. @Разработчик Он показывает пустой 🙁
3. тогда возникает некоторая проблема со строкой документов