7

我主要出于 SEO 的原因决定将“rel”添加到我的操作链接中,但不确定我采取的方式是否会遵循“最佳实践”。我只是创建了一个新的扩展方法,如下所示。

这是最好的方法吗?这种方法有什么需要修改的吗?

看法

<%= 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;
}
4

3 回答 3

13

您可以非常轻松地添加任何额外的 html 参数,而无需编写自己的扩展方法

<%= Html.ActionLink("Home", "Index", "Home", null,
                     new { title="Russell Solberg", rel="me"}) %>
于 2010-02-02T08:25:13.720 回答
4

您可以使用作为第四个参数传递的匿名类将属性添加到操作链接:

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

@ 符号用于允许您指定为 c# 保留关键字k(如 class)的属性名称。

于 2010-02-02T08:25:50.863 回答
2

我可能不会那样做,因为这将使任何字符串都成为可能。您已经可以使用操作链接执行此操作,而无需创建自己的扩展方法。像这样:

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

就我个人而言,我更喜欢自己使用Url.Action()和编写<a />标签,因为我认为这更具可读性。

于 2010-02-02T08:25:33.467 回答