2011-08-02 6 views
1

私はAjax.ActionLinkを使用してハイパーリンクを表示し、クリックするとajaxリクエスト(このサイトのハイパーリンク、レポートなど)を作成してdivに結果を入れますすべてこの方法で簡単に行うことができますが、このハイパーリンクには実際にhrefという属性があり、スパイダーがURLに従うため、SEOに問題があります。Ajax.ActionLinkより良いSEOのためにhref属性なし

私はすべてのことを行うには、それがSEOフレンドリーで拡張メソッド作るためのhrefのないアンカーをしたいが、Ajax.ActionLink例のすべてのオーバーロードで:

Ajax.SEOFriendlyActionLink("my hyperlink", "action", "controller" ... more options) 

これは、この

のようなものを生成することができます
<a urlForAjax="url here">my hyperlink</a> 

もちろん、ajaxコールバックを作成します。

このようなことはありますか?次のように

答えて

0

解決策は以下のとおりです。

Ajax.ActionLink( "私のハイパーリンク"、 ""、 "" ...新AjaxOptions(){のURL = Url.Action( "アクション"、 "コントローラ") ...})

それは次のようなものが生成されます。で与え <のhref = "/" データAJAX-URL = "ここにURL" ... > </>

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すべてのリンクに!!この属性が削除されるので、新しいタブでリンクを開くオプションが無効になります。

関連する問題