Quiero cargar varios archivos, incluidos documentos de Word, PDF e imágenes. Necesito usar una sola entrada para los archivos porque no sabemos cuántos archivos se cargarán.
Mi código es este, pero tengo el problema de que no puedo enviar archivos al lado del servidor.
Código del controlador:
public ActionResult Create([Bind(Include = "Id,Content")] Message message, IEnumerable<HttpPostedFileBase> files) { if (ModelState.IsValid) { // Object save logic SaveFiles(message,files); return RedirectToAction("Index"); } return View(message); }Parte del código de vista:
<form name="registration" action=""> @Html.ValidationSummary(true, "", new { @class = "text-danger" }) <div class="form-group"> <label for="Content" >Content:</label> <textarea class="form-control compose_content" rows="5" id="Content" name="content"></textarea> <div class="fileupload"> Attachment : <input id="files" name="files" type="file" multiple /> </div> </div> <button type="submit" class="btn btn-default compose_btn" >Send Message</button> </form>No tengo problema con guardar archivos y guardar el objeto. único problema: la lista de archivos es nula.
Para cargar archivos, su formulario debe incluir el enctype= multipart/form-data .
<form name="registration" action="" enctype= "multipart/form-data">o mejor
@using (Html.BeginForm(actionName, controllerName, FormMethod.Post, new { enctype= "multipart/form-data" })) y le recomiendo encarecidamente que pase un modelo a la vista y use los métodos HtmlHelper fuertemente tipados para crear su html para las propiedades de su modelo.