2011-02-08 37 views
17

¿Es posible utilizar etiquetas HTML en el linkText de Html.ActionLink? Por ejemplo, si quería negrita dentro del texto de un enlace me gustaría probar algo similar a esto:El uso de etiquetas HTML dentro de linkText Html.ActionLink

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

pero eso sólo salidas

Some <b>bold</b> text 

Sé que podría hacer esto mediante el uso de una etiqueta de anclaje y configuración de la URL con Url.Action, pero solo quería saber si esto era posible.

+0

Posible duplicado de [Colocación de HTML dentro de Html.ActionLink(), más Sin texto de enlace?] (Http://stackoverflow.com/questions/1974980/putting-html-inside-html-actionlink-plus-no-link -text) – KyleMit

Respuesta

7

n; no es posible.
tiene que escribir manualmente una etiqueta <a>.

+0

Gracias. Solo quería asegurarme antes de escribir manualmente las etiquetas a –

+1

¿Después de 3 años todavía es imposible? – Givi

+5

¿Después de 4 años todavía es imposible? –

0

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

31

El HTML de ayuda Html.ActionLink codifica el texto del enlace que evita que incruste 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 un estilo básico de un enlace, me gustaría recomendar el uso de uno de los Html.ActionLink sobrecargas para especificar un estilo CSS a través de la sintaxis objeto anónimo como tal ...

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

Por desgracia, eso se aplica negrita al texto completo del hipervínculo cuando lo que quieres es solo la palabra Editar para ser 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> 
+0

Si Editar es una acción de un controlador diferente, ¿cómo lo hago? Por ejemplo, tengo dos controladores: Hogar y Cuenta. Si actualmente estoy viendo la página de inicio de sesión del controlador de cuenta, y escribo '@ Url.Action (" Inicio ")', se muestra: 'Cuenta/Inicio'. Me gustaría que se muestre como 'Inicio/Índice', donde 'Inicio' es el controlador e 'Índice' es la acción. Intenté hacer '/ Home/Index'. – crush

+0

Encontré que la respuesta a mi pregunta es usar el segundo parámetro del método '@ Url.Action (string, string)'. El segundo parámetro es el nombre del controlador al que desea dirigirse. – crush

+1

El método @ Url.Action es la opción más flexible, ya que le permite manipular la etiqueta de anclaje aún más –

0

Esto funciona para mí:

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

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

Cuestiones relacionadas