【问题标题】:Ajax.ActionLink without href attribute for better SEO没有 href 属性的 Ajax.ActionLink 以获得更好的 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 回调。

有这样的东西吗?

【问题讨论】:

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


    【解决方案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 结束的每个链接!将删除此属性,因此它将禁用在新选项卡中打开链接的选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-06
        • 1970-01-01
        • 1970-01-01
        • 2014-10-30
        • 1970-01-01
        • 2014-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多