2011-06-23 15 views
2

私はAJAXを使用して同じコントローラーアクションを呼び出す必要のある多数のリンクを持つWebページを持っています。各リンクは、1つのパラメータによってのみ異なります。今はAjax.ActionLinkを作成していますが、これは非常に冗長なHTMLを生成します。 1つのActionLinkを作成して各リンクから起動するにはどうすればよいですか?私はC#でMVC3を使用しています複数のトリガーを持つAjax.ActionLink

ありがとうございます。

+0

「私は1つのActionLinkを作成して各リンクから起動するにはどうすればよいですか? – Coffee

+1

これは間違ったアプローチですが、複数のActionLinkを作成しないようにしたいと考えています。私は多分1つを作成し、複数のリンクのそれぞれからそれを「呼び出す」ことができると思った。おそらくもっと簡単な方法があります。 – Bobbler

+1

また、私はjQueryを使用しているので、各リンクに関数をバインドすることができ、その関数はActionLinkを "呼び出す"ことができます – Bobbler

答えて

0

あなたはあなたの質問にかなり答えました。クリック関数をアンカーにバインドし、その呼び出しをjquery.ajaxメソッドで行うことができます。また、標準アンカーを作成し、それがonClickイベントでメソッドを呼び出すかもしれない:

<a onclick="myFunc('thisLink');" href="#"/> 

myFuncというは、電話またはAjaxの機能にパラメータを渡すためにどのAJAX機能を示すパラメータを受け入れるだろう。

<script type="text/javascript"> 
    function myFunc(link) { //perform the ajax call } 
</script> 
+1

jQueryを使用している場合、インライン 'onclick'ハンドラは必要ありません。 '$(" selector ")を使う。代わりに(function(){...})'をクリックする。 –

+1

しかし、私はこれを行い、UpdateTargetIdとLoadingElementIdを持つMVC Ajax.ActionLinkを利用することができますか?シンプルなjQuery関数を使用すると、ターゲットを更新し、アニメーションGIF表示を切り替える必要があります。 Ajax.ActionLink @ – Bobbler

+2

( 新しい{gameId = 1、動き= 1}、 新しいAjaxOptions {UpdateTargetId = "ピース"、 InsertionMode = InsertionMode.Replace、 HTTPMETHOD、 "歴史" "作品をロードするためにクリックしてください" = "GET"、 LoadingElementId = "ajaxloader" }) – Bobbler

関連する問題