none
No puedo visualizar imágenes guardadas en la base de datos RRS feed

  • Pregunta

  • Hola buen día a todos, estoy desarrollando un proyecto en MVC 5 y estoy guardando imágenes para mostrarlas posteriormente en una galería, mi problema es que  puedo guardar las imágenes pero cuando se muestran en el index, details, ect. no se muestran cuando le doy clic derecho sobre la imagen para abrir en otra pestaña me dice que 

    El diccionario de parámetros contiene una entrada NULL para el parámetro 'IdImagen' del tipo que no acepta valores NULL 'System.Int32' del método 'System.Web.Mvc.ActionResult convertirImagen(Int32)' en 'WebPorIgualaV1.Controllers.GaleriasController'. Un parámetro opcional debe ser un tipo de referencia, un tipo que acepte valores NULL o debe declararse como parámetro opcional.
    Nombre del parámetro: parameters

    Mi tabla de galería es la siguiente 

     public partial class Galeria
        {
            public int Id { get; set; }
            public string Titulo { get; set; }
            public string Descripcion { get; set; }
            public byte[] Imagen { get; set; }
        }

    El método con el cual convierto las imágenes

     public ActionResult convertirImagen(int IdImagen)
            {
                var imagenorg = db.Galerias.Where(x =>  x.Id == IdImagen).FirstOrDefault();
                return File(imagenorg.Imagen, "image/jpeg");
            }

     Espero me puedan ayudar 


    blackbird

    miércoles, 11 de mayo de 2016 16:38

Respuestas

  • hola

    valida como defines la url que invocas cuando quieres obtener la imagen, porque el error menciona que no estas asignando ningun parametro

    deberia ser algo como esto

    http://<sitio>/NombreController/convertirImagen?IdImagen=1

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta ber202 jueves, 30 de marzo de 2017 21:23
    miércoles, 11 de mayo de 2016 17:37

Todas las respuestas

  • Hola,

    Has probado depurando el código?, el idImagen que recibe es null, como lo llamas en tu vista (muestra el código) ?

    Tienes que enviarle el parámetro idImagen, al parecer no envías nada.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 11 de mayo de 2016 17:08
  •  en index lo llamo de la siguiente manera

    <td>
                <img width="50" height="50" src="@Url.Action("convertirImagen", "Galerias", new { IdImagen = item.Imagen })"
            </td>

    En create

     <div class="form-group">
                @Html.LabelFor(model => model.Imagen, htmlAttributes: new { @class = "control-label col-md-2" })
                <div class="col-md-10">
                   <input type="file" name="Imagen" />
                </div>
            </div>



    blackbird

    miércoles, 11 de mayo de 2016 17:13
  • por que estas haciendo tu camada entity partial? hasla publica, y es obvio que no esta trayendo el IdImagem no lo estas preenchendo, coloca una regla If para reconocer el preenchimento de la propriedad ID, si usas interfacem verifica si los contratos estan siendo bien referenciados con los metodos de la regla de negocio correcto. y estas a la camada Data. 

    Lander P.S Herrera

    miércoles, 11 de mayo de 2016 17:28
  • Hola ber202,

    ¿<item.Imagen> en todos los casos contiene un Id de imagen? 

    Lo que menciona  el error es bastante claro, no le está llegando un valor de tipo entero. Te sugiero que pongas un punto de interrupción para revisar que valor obtiene ese parámetro.

    miércoles, 11 de mayo de 2016 17:37
  • hola

    valida como defines la url que invocas cuando quieres obtener la imagen, porque el error menciona que no estas asignando ningun parametro

    deberia ser algo como esto

    http://<sitio>/NombreController/convertirImagen?IdImagen=1

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta ber202 jueves, 30 de marzo de 2017 21:23
    miércoles, 11 de mayo de 2016 17:37
  • Sale de esta manera por que genere con entity model ya que la tabla ya la tenia hecha en sql

    blackbird

    miércoles, 11 de mayo de 2016 21:39
  • gracias ya lo resolví 

    blackbird

    miércoles, 11 de mayo de 2016 21:39
  • Si fue  en parte eso que no le estaba asignado  el parámetro

    blackbird

    miércoles, 11 de mayo de 2016 21:40