asp.net-mvc actionlink html.actionlink

asp.net mvc - Usando etiquetas HTML dentro del linkText de Html.ActionLink



asp.net-mvc (4)

El HTML del ayudante Html.ActionLink codifica el texto del enlace que le impide incrustar HTML en el texto del enlace.

Por esta misma razón, no puede usar Html.ActionLink y pasar una etiqueta para hacer que una imagen sea un hipervínculo.

Para el estilo básico de un enlace, recomiendo usar una de las sobrecargas Html.ActionLink para especificar un estilo CSS a través de la sintaxis del objeto anónimo, como ...

@Html.ActionLink("Please Edit Me", "Edit", null, new { style="font-weight:bold;" })

Desafortunadamente, eso se aplica en negrita a todo el texto del hipervínculo cuando lo que quiere es simplemente que la palabra Editar esté en negrita. En cuyo caso yo haría esto ...

<a href="@Url.Action("Edit")">Please <b>Edit</b> Me</a>

... o esto ...

<a href="@Url.Action("Edit")">Please <span style="font-weight:bold;">Edit</span> Me</a>

¿Es posible usar etiquetas HTML en el linkText de Html.ActionLink? Por ejemplo, si quisiera poner en negrita parte del texto de un enlace, intentaría algo similar a esto:

<%= Html.ActionLink("Some <b>bold</b> text", "Index")%>

pero eso solo produce

Some <b>bold</b> text

Sé que podría hacerlo usando una etiqueta de anclaje y configurando la URL con Url.Action, pero solo quería saber si esto era posible.


Esto funciona para mí:

@Html.Raw(@Html.ActionLink("XXX", "Index", new { }, new { @class = "FormBtn" }).ToHtmlString().Replace("XXX","<u>Back to List</u>"))

Esencialmente, use ActionLink para crear el html con un marcador de posición para lo que desea reemplazar (''XXX''), luego conviértalo en una cadena HTML, reemplace el marcador de posición con su marca, renderice la cadena como HTML.Raw.


No es posible, pero puede crear un HtmlHelper para esto, vea here o use Url.Action lugar de lo que le recomendaría.


No; no es posible.
Necesitas escribir manualmente una etiqueta <a> .