没有 href 属性的 Ajax.ActionLink 以获得更好的 SEO
Posted
技术标签:
【中文标题】没有 href 属性的 Ajax.ActionLink 以获得更好的 SEO【英文标题】:Ajax.ActionLink without href attribute for better SEO 【发布时间】:2011-10-18 15:49:20 【问题描述】:我正在使用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 回调。
有这样的东西吗?
【问题讨论】:
【参考方案1】:解决方法如下:
Ajax.ActionLink("我的超链接", "", "" ... new AjaxOptions() Url = Url.Action("action", "controller") ... )
它将生成如下内容:
【讨论】:
【参考方案2】:@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 结束的每个链接!将删除此属性,因此它将禁用在新选项卡中打开链接的选项。
【讨论】:
以上是关于没有 href 属性的 Ajax.ActionLink 以获得更好的 SEO的主要内容,如果未能解决你的问题,请参考以下文章
为啥 a:hover 不能在没有 href 属性的锚上工作?
没有 href 属性的 Ajax.ActionLink 以获得更好的 SEO