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



我使用Ajax.ActionLink来显示一个超链接,当点击一个ajax请求(例如在这个网站的标志超链接,报告等),并把结果放在一些div,这一切都可以很容易地用这种方法完成,但问题来了SEO,因为这个超链接实际上有和href属性和蜘蛛跟随url。

我想要一个锚没有href,使其SEO友好和扩展方法做所有这些,但与Ajax的所有过载。ActionLink例子:

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

可以生成如下内容

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

当然是ajax回调。

有这样的东西吗?

解决方案如下:

Ajax。ActionLink("my hyperlink", ", "…new AjaxOptions() {Url = Url。Action("Action","controller")…})

它将生成如下内容:& lt;A href="/" data-ajax-url="url在这里"…>& lt;/a>

@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结尾!!将删除此属性,因此它将禁用在新选项卡中打开链接的选项

最新更新