Ajax.ActionLink без атрибута href для лучшего SEO - PullRequest
1 голос
/ 03 августа 2011

Я использую 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.

Isесть что-нибудь подобное?

Ответы [ 2 ]

0 голосов
/ 29 апреля 2016

Решение, данное @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");
});

Отныне каждая ссылка, на которой заканчивается ссылка!этот атрибут будет удален, поэтому он отключит возможность открывать ссылку в новой вкладке.

0 голосов
/ 26 августа 2011

Решение заключается в следующем:

Ajax.ActionLink ("моя гиперссылка", "", "" ... new AjaxOptions () {Url = Url.Action ("action", "controller")) ...})

Будет сгенерировано что-то вроде этого:

...