2009-10-10 54 views
16

necesito el texto de un enlace envuelto con <span> como en:ASP.NET MVC: cómo incluir <span> en el enlace de Html.ActionLink?

<a href="/foo.html"><span>Edit Group</span></a> 

¿Puedo hacer eso con Html.ActionLink? Esto no funciona:

<%=Html.ActionLink("<span>Edit Group</span>", "Edit", New With {.id = "bar"})%> 

Sólo HTML codifica el < y > como &lt; y &gt;.

¿Hay una solución simple, o debo construir los enlaces a mano con Url.Action?

Esto es para usar con las pestañas jQuery-UI. Las etiquetas de las pestañas deben estar envueltas en <span> para obtener una animación cuando se carga el contenido de AJAX.

Respuesta

10

Tendrás que hacerlo con Url.Action, no hay manera con Html.ActionLink hasta donde yo sé.

+0

gracias nice clear my doubt – Rakeshyadvanshi

21

Puede utilizar el método de ayuda Url.Action como una solución (en caso de que no haya otras respuestas que se ajusten mejor a sus necesidades).

Por ejemplo, la siguiente puede estar en marcado en su opinión:

<a href="<%= Url.Action("Edit", 
         New With {.id = "bar"}) %>"> 
<span>Edit Group</span> 
</a> 
+0

Gracias. Sí, eso es lo que terminé haciendo. – royco

9

También puede rodar su propia Método de extensión HtmlHelper, en realidad prefieren este método ya que puede controlar la colocación de las identificaciones, las clases y otros atributos como un título.

Aquí hay un blog post que preparé sobre el tema.

+0

Esto es asombroso. Pero honestamente [el equipo Razor] (https://github.com/aspnet/Razor/issues/248) necesita darse cuenta de que existe una demanda justa de este tipo de personalización en el enlace, y deberían considerar proporcionar una opción para 'Raw (_) 'enlace de representación en acción. –

+0

¿Has consultado TagHelpers? http://channel9.msdn.com/Shows/Web+Camps+TV/Create-your-own-Domain-Specific-Language-in-ASPNET-with-TagHelpers –

3

Qué tal esto:

@{ 
    var link = Html.ActionLink("{0}", "Edit", New {id = "bar"}).ToString(); 
    var url = string.Format(link, "<span>Edit Group</span>"); 
} 

@Html.Raw(url); 

Hack // bonito: Se recomienda el uso previo aviso y escribir un ayudante para terminar con esto arriba.

Cuestiones relacionadas