我正在使用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回调。
那里有这样的东西吗?
答案 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结束的链接!!将删除此属性,因此它将禁用在新选项卡中打开链接的选项。