Aps.net MVC Ajax.BeginForm y los input file
La versión 3.2.3 de Microsoft.jQuery.Unobtrusive.Ajax no envía los archivos adjuntos seleccionados mediante input file, revisando en sitios como stackoverflow y en asp.net comentan que este error se debe a que la librería posee este problema, y recomiendan otras librerías para estos casos. Por las facilidades que brinda unobtrusive, decidí por realizar una pequeña modificación que permite corregir este inconveniente.
Como esta es una librería que se obtiene por nuget, es recomendable documentar este cambio de forma apropiada, esto porque ante una actualización nuestros formularios dejaran de funcionar.
En la función asyncRequest antes de enviar los datos al servidor se debe cambiar los elementos en options.data por un objeto FormData en el cual ademas de los otros datos a enviar al servidor, se van agregar los archivos seleccionados por el usuario.
Se debe evitar que se procesen los objetos y sean convertidos en query string y que no se especifique el content-type.
Comentarios
Publicar un comentario