2012-05-11 14 views
4

私は次のJavaScriptコードがあります。asp.net-mvc 3の@ Ajax.ActionlinkにJavascript変数を渡すことはできますか?

var idJS; 

$('.disp').click(function() { 
    idJS = $(this).attr("id"); 
}) 

をそして、私はこれをしたい:

@Ajax.ActionLink("myMethod", "myMethod", "HomeController", new { id = idJS }, 
    new AjaxOptions() { HttpMethod = "Get", UpdateTargetId = "myDiv" }) 

それがこれを行うことは可能ですか?

+2

いいえ、できません – musefan

答えて

5

これはjavascriptの前にすべてのそのコードが解決されるように、(HTMLに変換)、それがロードされたページがあっても実行することができたときにカミソリビューコードがレンダリングされるので、やることはできません。

ただし、私はそれを見ていきます

$("a").attr("href", "/Home/myMethod/" + idJS); 

OK(私は怖いけれども、必要であれば、JavaScriptの同等のものを探すのjQueryを使用して)例えば、以下のように、リンクのプロパティを変更するにはJavascriptを使用することができます

その後、javascriptのみ:

document.getElementById("link").href = "/Home/myMethod/" + idJS; 
1

いいえサーバー側とクライアント側の2つの非常に異なるものです。サーバー側は、クライアントに到達する前にレンダリングされます。 $(document).ready()が起動するまでに、サーバーは終了します。

できることは、jQueryを使用してリンクのIDを変更することです。もう少し情報があれば、もっと助けてもらえますが、jQueryで属性を変更するのは簡単です。

"ajaxBtn"などのコードをハードコードするように設定すると、.dispの場合でもクリックするとデータ属性を必要なものに変更できます。しかし、それ以上のデータがなければ、IDを設定する必要がある理由を正確に知ることはできません。

関連する問題