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