Я решил, прежде всего, по причинам SEO добавить "рэл" к моей ссылке действия, но не уверен, что путь, которым я пошел об этом, собирается следовать за "лучшими практиками". Я просто создал новый Дополнительный метод как показано ниже.
Действительно ли это - лучший способ пойти о выполнении этого? Есть ли вещи, которые должны быть изменены в этом подходе?
Посмотреть
<%= 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;
}
Вы можете очень легко добавить любой дополнительный параметр html, и вам не нужно писать свои собственные методы расширения.
<%= Html.ActionLink("Home", "Index", "Home", null,
new { title="Russell Solberg", rel="me"}) %>
Вы можете добавить атрибуты к ссылке действия с анонимным классом, переданным в качестве четвертого параметра:
<%= Html.ActionLink("Home", "Index", null,new{ @title="Russell Solberg", @rel="me" }) %>
Знак @ используется, чтобы позволить вам указать имена атрибутов, которые являются c # зарезервированными ключевыми словами (например, class).
Я бы, вероятно, не стал делать это таким образом, поскольку это сделает это возможным для любой строки. Вы уже можете сделать это с помощью ссылки действия, не создавая собственных методов расширения. Примерно так:
<%=Html.ActionLink("Home", "Index", "Home", null, new {title = "Russell Solberg", rel = "me"}) %>
Лично я предпочитаю использовать Url.Action ()
и сам писать тег
, так как считаю его более читабельным.