Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding rel and title to ASP.NET MVC Action Links

I decided primarily for SEO reasons to add the "rel" to my action link, but am not sure that the way I have gone about this is going to follow "best practices." I simply created a new Extension method as shown below.

Is this the best way to go about doing this? Are there things that should be modified in this approach?

VIEW

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

EXTENSION METHODS

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;
}
like image 547
RSolberg Avatar asked Feb 02 '10 08:02

RSolberg


3 Answers

You can add any extra html parameter very easily and don't need to write your own extension methods

<%= Html.ActionLink("Home", "Index", "Home", null,
                     new { title="Russell Solberg", rel="me"}) %>
like image 139
Richard Garside Avatar answered Oct 05 '22 07:10

Richard Garside


You can add attributes to the action link with anonymous class passed as fourth parameter:

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

The @ sign is used to allow you to specify attribute names that are c# reserved keywordk (like class).

like image 30
Branislav Abadjimarinov Avatar answered Oct 05 '22 07:10

Branislav Abadjimarinov


I would probably not do it that way as that will make this possible for any string. You can already do this with the action link without creating your own extensions methods. Like this:

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

Personally I prefer to use Url.Action() and write the <a /> tag myself as I think thats more readable.

like image 40
Mattias Jakobsson Avatar answered Oct 05 '22 06:10

Mattias Jakobsson