没有href属性的Ajax.ActionLink用于更好的SEO

时间:2011-08-02 22:12:09

标签: ajax asp.net-mvc-3 seo extension-methods

我正在使用Ajax.ActionLink来显示超链接,当点击时发出ajax请求(例如此站点中的标记超链接,报告等)并将结果放入某个div中,这一切都可以轻松完成使用这种方法,但问题来自SEO,因为这个超链接实际上有href属性和蜘蛛跟随网址。

我想要一个没有href的锚来使它成为SEO友好和扩展方法来完成所有这些,但是使用Ajax.ActionLink示例的所有重载:

Ajax.SEOFriendlyActionLink("my hyperlink", "action", "controller" ... more options)

这可以产生类似这样的东西

<a urlForAjax="url here">my hyperlink</a>

当然要进行ajax回调。

那里有这样的东西吗?

2 个答案:

答案 0 :(得分:0)

解决方案如下:

Ajax.ActionLink(“我的超链接”,“”,“”......新的AjaxOptions(){Url = Url.Action(“action”,“controller”)...})

它将生成如下内容: &LT; a href =“/”data-ajax-url =“url here”...&gt; &LT; / A&GT;

答案 1 :(得分:0)

@kyw给出的解决方案很好但有一个缺点。链接可以在newtab中打开,这可能不是我们正在寻找的行为。

我们会稍微更改一下代码:

Ajax.ActionLink("my hyperlink", "", "" ... new AjaxOptions() { Url = Url.Action("action", "controller") ... }, new { href = "!!"})

现在我们需要一些jQuery:

$('a[href$="!!"]').each(function (index, element) {
element.removeAttribute("href");
});

从现在开始每个href结束的链接!!将删除此属性,因此它将禁用在新选项卡中打开链接的选项。