Principales respuestas
Anidar etiquetas en razor.

Pregunta
-
Teniendo un código Html con la siguiente forma:
<a href="Index-cms.cshtml">
<img src="~/Content/Images/forma.png" width="120" alt="" />
</a>Es posible lograrlo en razor anidando la etiqueta 'img' dentro de un @Html.Actionlink ?
puede hacerse con otras etiquetas, por ejemplo: span o div??
AUR
Respuestas
-
No. Por defecto no se puede.
Si vas a usarlo mucho y no quieres tener un anchor con estilo CSS sino realmente un anchor con una imagen dentro, entonces créate tu propio helper Razor.
Crear helpers Razor es muy sencillo (link en inglés):
http://dotnethelpers.wordpress.com/2013/08/05/how-to-create-custom-html-helpers-using-mvc-4-razor/
También por completitud te añado un par de enlaces de mi blog sobre crear templates (que son un paso más allá de los Helpers):
http://geeks.ms/blogs/etomas/archive/2011/01/25/asp-net-mvc3-razor-templates.aspx
http://geeks.ms/blogs/etomas/archive/2011/01/26/asp-net-mvc3-un-helper-repeater.aspx
Saludos!
Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
- Propuesto como respuesta Sergio ParraModerator miércoles, 27 de agosto de 2014 12:24
- Marcado como respuesta Ale Uribe miércoles, 27 de agosto de 2014 15:52
Todas las respuestas
-
Html.ActionLink as a button or an image, not a link
Make an Html.ActionLink around an Image in ASP.NET MVC?
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Gracias por responder! :)
Había encontrado esas soluciones, pero entonces, no hay forma de hacerlo puramente con helpers y sin utilizar CSS?
Por ejemplo:
@Html.ActionLink("Imagen", "Index", "Home")
Y en lugar del texto "Imagen" poder generar :
<img src='~/Content/Images/logotipo.png' width='120' alt='' />
(o algo por el estilo).
AUR
-
No. Por defecto no se puede.
Si vas a usarlo mucho y no quieres tener un anchor con estilo CSS sino realmente un anchor con una imagen dentro, entonces créate tu propio helper Razor.
Crear helpers Razor es muy sencillo (link en inglés):
http://dotnethelpers.wordpress.com/2013/08/05/how-to-create-custom-html-helpers-using-mvc-4-razor/
También por completitud te añado un par de enlaces de mi blog sobre crear templates (que son un paso más allá de los Helpers):
http://geeks.ms/blogs/etomas/archive/2011/01/25/asp-net-mvc3-razor-templates.aspx
http://geeks.ms/blogs/etomas/archive/2011/01/26/asp-net-mvc3-un-helper-repeater.aspx
Saludos!
Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis
- Propuesto como respuesta Sergio ParraModerator miércoles, 27 de agosto de 2014 12:24
- Marcado como respuesta Ale Uribe miércoles, 27 de agosto de 2014 15:52
-
Gracias por la respuesta!! :)
En efecto, he creado los helpers que necesito para implementarlos por toda la aplicación. Un resultado más o menos como esto:
public static MvcHtmlString hLinkImage(this HtmlHelper helper, string src, string width, string href)
{
var img = new TagBuilder("img");
img.MergeAttribute("src", src);
img.MergeAttribute("width", width);
var a = new TagBuilder("a");
a.MergeAttribute("href", href);
a.InnerHtml = img.ToString(TagRenderMode.SelfClosing);
return MvcHtmlString.Create(a.ToString());
}
Gracias!!
AUR