Добавление rel и title в ASP.NET MVC Action Links - PullRequest
7 голосов
/ 02 февраля 2010

Я решил в первую очередь по причинам SEO добавить «rel» к моей ссылке на действие, но не уверен, что то, как я это сделал, будет следовать «лучшим практикам». Я просто создал новый метод Extension, как показано ниже.

Это лучший способ сделать это? Есть ли вещи, которые следует изменить в этом подходе?

ПРОСМОТР

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

МЕТОДЫ РАСШИРЕНИЯ

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;
}

Ответы [ 3 ]

13 голосов
/ 02 февраля 2010

Вы можете очень легко добавить любой дополнительный параметр html, и вам не нужно писать собственные методы расширения

<%= Html.ActionLink("Home", "Index", "Home", null,
                     new { title="Russell Solberg", rel="me"}) %>
4 голосов
/ 02 февраля 2010

Вы можете добавить атрибуты к ссылке действия с анонимным классом, переданным в качестве четвертого параметра:

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

Знак @ используется для того, чтобы вы могли указать имена атрибутов, которые являются c # зарезервированными ключевыми словами (как класс).

2 голосов
/ 02 февраля 2010

Я бы, вероятно, не сделал это таким образом, поскольку это сделало бы это возможным для любой строки. Вы уже можете сделать это с помощью ссылки действия, не создавая собственные методы расширений. Как это:

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

Лично я предпочитаю использовать Url.Action() и писать тег <a /> самостоятельно, так как я думаю, что это более читабельно.

...