2010-02-02 16 views
7

Decidí principalmente por razones de SEO agregar el "rel" a mi enlace de acción, pero no estoy seguro de que la forma en que he trabajado sobre esto siga las "mejores prácticas" " Simplemente creé un nuevo método de extensión como se muestra a continuación.Agregando rel y title a ASP.NET MVC Action Links

¿Es esta la mejor manera de hacerlo? ¿Hay cosas que deberían modificarse en este enfoque?

VER

<%= Html.ActionLink("Home", "Index", "Home") 
    .AddRel("me") 
    .AddTitle("Russell Solberg") 
%> 

métodos de extensión

public static string AddRel(this string link, string rel) 
{ 
    var tempLink = link.Insert(link.IndexOf(">"), String.Format(" rel='{0}'", rel)); 
    return tempLink; 
} 

public static string AddTitle(this string link, string title) 
{ 
    var tempLink = link.Insert(link.IndexOf(">"), String.Format(" title='{0}'", title)); 
    return tempLink; 
} 

Respuesta

12

Usted puede agregar cualquier parámetro HTML adicional muy fácilmente y no necesita escribir sus propios métodos de extensión

<%= Html.ActionLink("Home", "Index", "Home", null, 
        new { title="Russell Solberg", rel="me"}) %> 
2

Probablemente no lo haga de esa manera, ya que eso hará que esto sea posible para cualquier cadena. Ya puede hacer esto con el enlace de acción sin crear sus propios métodos de extensiones. De esta manera:

<%=Html.ActionLink("Home", "Index", "Home", null, new {title = "Russell Solberg", rel = "me"}) %> 

personalmente prefiero utilizar Url.Action() y escribir la etiqueta <a /> mí mismo como creo que eso es más fácil de leer.

+0

El cuarto parámetro es valores de ruta, debe agregar nulo aquí para obtener html htmlAttributes, que es el quinto parámetro. –

+0

Eso es correcto. Lo siento, pensé que sabía la firma. Gracias por la corrección. –

+0

Tuve que verificarlo. IntelliSense significa que no necesito recordar. –

4

Puede añadir atributos para el enlace de acción con clase anónima pasado como cuarto parámetro:

<%= Html.ActionLink("Home", "Index", null,new{ @title="Russell Solberg", @rel="me" }) %> 

El signo @ se utiliza para permitirle especificar nombres de atributos que son C# keywordk reservada (como clase).

+0

No sabía sobre usar el carácter @. Me sale un error al configurar más de un atributo cuando no lo uso. – Sambo