¿Es posible pasar los datos del formulario sin usar FormData usando el modelo de JavaScript? Como mi formulario tiene muchos controles, me gustaría optar por el enfoque Model en lugar de FormData.
¿Hay alguna forma de pasar los archivos seleccionados al controlador sin usar HttpPostedFileBase? Tengo casi 10 clases diferentes que aceptan HttpPostedFileBase
Tengo una clase de la siguiente manera en C#
public class ArtGallery{ Public string GallerName {get;set;} Public HttpPostedFileBase[] Documents {get;set;} }El modelo de JavaScript equivalente es
class ArtGallery{ GallerName; Documents[]; }En mi guardado del formulario aquí es cómo lo estoy haciendo
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) { } }); }Mi controlador es el siguiente, que se activa pero no puedo obtener documentos
[HttpPost] public JsonResult PostUserData(ArtGallery gallery) { }