none
¿Cómo asociar una acción a una imagen? RRS feed

  • Pregunta

  • Hola, ¿cómo están? Les comento que estoy intentando asociar una imagen a un método que recibe parámetros de un controlador. Al hacer click en la imagen se dispara la acción. De momento lo he realizado de la siguiente forma:

    <a href="/Producto/Create/?idTipo=@Model.TipoId"> <img class="imgBoton" src="/Content/images/add_azul.png" alt="Agregar"/></a>
    

    Donde llamo al método Create, del controlador controlador Producto y le paso el parámetro idTipo. Funciona, pero sospecho que no es la mejor forma de hacerlo...

    ¿Alguna sugerencia de cómo generar la uri de una forma un poco más dinámica?

    Saludos!

     

    Laura.-

    jueves, 19 de mayo de 2011 20:07

Respuestas

  • Buenas Laura!

    El único pero que le pongo yo a eso código es que estás poniendo la URL de forma "hardcode", y por lo tanto si algún dia modificas la tabla de rutas, este código te generará URLs inválidas.

    No hay un helper tipo Html.ActionLink para imágenes, pero hay un Helper llamado Url.Action para generar URLs :)

    En tu caso el código quedaría (usando sintaxis Razor) algo parecido a:

    <a href="@Url.Action("Create","Producto", new {idTipo=Model.TipoId})"> <img class="imgBoton" src="@Url.Content ("~/Content/images/add_azul.png")" alt="Agregar"/></a>
    
    

    Observa el uso de Url.Action (para obtener URLs a una acción) y de Url.Content para obtener URLs a "elementos estáticos". Usar Url.Content garantiza que esta URL será correcta con independencia de si tu sitio web está en la raiz del servidor web o bien en algún subdirectorio!

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    viernes, 20 de mayo de 2011 6:20

Todas las respuestas

  • Buenas Laura!

    El único pero que le pongo yo a eso código es que estás poniendo la URL de forma "hardcode", y por lo tanto si algún dia modificas la tabla de rutas, este código te generará URLs inválidas.

    No hay un helper tipo Html.ActionLink para imágenes, pero hay un Helper llamado Url.Action para generar URLs :)

    En tu caso el código quedaría (usando sintaxis Razor) algo parecido a:

    <a href="@Url.Action("Create","Producto", new {idTipo=Model.TipoId})"> <img class="imgBoton" src="@Url.Content ("~/Content/images/add_azul.png")" alt="Agregar"/></a>
    
    

    Observa el uso de Url.Action (para obtener URLs a una acción) y de Url.Content para obtener URLs a "elementos estáticos". Usar Url.Content garantiza que esta URL será correcta con independencia de si tu sitio web está en la raiz del servidor web o bien en algún subdirectorio!

    Saludos!


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
    viernes, 20 de mayo de 2011 6:20
  • Gracias! Ya lo estoy poniendo en práctica.

    Saludos!

     

    Laura.-

    viernes, 20 de mayo de 2011 15:15