2012-03-01 17 views
0

私はajax ActionLinkを持っています。それはかなりうまくいく:Ajax.ActionLinkをボタンに変換する

@Ajax.ActionLink("Supprimer", "RemovePersonToKeepInformed", "General", new { keepInformedPersonId = item.KeepInformedPersonId }, new AjaxOptions { Confirm = @UserResource.KeepInformedPersonRemoveConfirmation, HttpMethod = "Delete", OnSuccess = "JsonDelete_OnSuccess" }) 

私はボタンのように表示したいと思います。私がしていることは次のとおりです。

<span class="button"> 
    @Ajax.ActionLink("Supprimer", "RemovePersonToKeepInformed", "General", new { keepInformedPersonId = item.KeepInformedPersonId }, new AjaxOptions { Confirm = @UserResource.KeepInformedPersonRemoveConfirmation, HttpMethod = "Delete", OnSuccess = "JsonDelete_OnSuccess" }) 
</span> 

$('.button').button(); 

「Supprimer」というテキストをクリックした場合にのみ機能します。ユーザーがボタンのどこかをクリックしても機能しません。

enter image description here

私は、ユーザーがAJAXをトリガするためのボタンで任意の場所をクリックすることを可能にするために、それを解決することができますか?

ありがとうございました。

答えて

2

クラスを<a>タグに追加する場合は、, new { @class = "button" }を追加します。

0

リンクをSPANでラップするのではなく、ボタンとして表示するようにスタイルを設定できるのが最も簡単です。それが不可能な場合は、リンク上のクリックを呼び出すクリックハンドラをSPANに追加する必要があります。それは、リンクのクリックハンドラが伝播を停止するかどうか(生成されたクリックをSPANのクリックハンドラにバブルアップさせたくないかどうかに応じて行うことは簡単かもしれません)。それがAjaxHelperとやりすぎることが判明した場合は、何が起こるかをより詳細に制御できるjQueryを使って、手動でヘルパーのアクションを再作成することはあまり難しくありません。

しかし、最適な解決策は、リンク自体にスタイリングを変更することです。

関連する問題