public ActionResult Edit(ProductoViewModel producto) { if (ModelState.IsValid) { try { //Verifico si hay algun request if (Request.Files.Count > 0) { //obtengo el valor del Input del file de la vista var file = Request.Files[0]; //Si esta vacio o es igual a 0 quiere decir que no se paso una imagen if (file != null && file.ContentLength > 0) { // guardo la imagen en un la carpeta "Images" para luego llevarlo a la BD var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath("~/Images" + fileName)); file.SaveAs(path); // Realizo la conversion de datos using (var binaryReader = new BinaryReader(file.InputStream)) { byte[] array = binaryReader.ReadBytes(file.ContentLength); // mapeo la foto convertida a bytes, hacia el viewmodel var foto = Mapper.Map(array, producto.Imagen); //mapeo el viewmodel como una entidad var productoDominio = Mapper.Map <ProductoViewModel, Producto>(producto); //agrego la foto en bytes a la entidad productoDominio.Imagen = foto; //actualizo la entidad en la BD _productoAppService.Actualizar(productoDominio); } } else { // Obtengo el Id de la imagen que estoy por Actualizar var pasoid = producto.Id; // Obtengo los datos de la imagen que estoy por actualizar con el Id var pasofoto = _productoAppService.BuscarProductoImagen(pasoid); //Convierto la Entidad a un viewmodel var viewmodel = Mapper.Map <Producto, ProductoViewModel>(pasofoto); //Modifico la propiedad imagen del viewmodel al nuevo viewmodel creado producto.Imagen = viewmodel.Imagen; //Mapeo el viewmodel "producto" a una entidad var productoDominio = Mapper.Map <ProductoViewModel, Producto>(producto); // Actualizo la entidad _productoAppService.Actualizar(productoDominio); } return(RedirectToAction("Index")); } } catch (Exception ex) { return(View(ex.Message)); } return(RedirectToAction("Index")); } ViewBag.MarcaId = new SelectList(_marcaAppService.ObtenerTodo(), "Id", "Descripcion", producto.MarcaId); ViewBag.CategoriaId = new SelectList(_categoriaAppService.ObtenerTodo(), "Id", "Descripcion", producto.CategoriaId); ViewBag.TerceroId = new SelectList(_terceroAppService.ObtenerTodo(), "Id", "Apellido", producto.TerceroId); return(View(producto)); }