将rel和title添加到ASP.NET MVC Action Links

时间:2010-02-02 08:18:04

标签: asp.net-mvc actionlink canonical-link

我主要是出于搜索引擎优化的原因决定将“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 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:4)

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

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

@符号用于指定属性名称为c#reserved keywordk(如类)。

答案 2 :(得分:2)

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

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

我个人更喜欢使用Url.Action()并自己编写<a />标记,因为我觉得它更具可读性。