2009-08-21 35 views
15

誰でもjavascriptのアクションの例がありますか?私はスクリプトが返されたら実行するのが苦労しています。ありがとうASP.NET MVC Javascript ActionResult

+0

あなたは少し手の込んだでした:コントローラーで

<script> $(document).ready(function() { $("button").click(function() { $.getScript("/Home/ShowAlert"); }); }); </script> <button>Use Ajax to get and then run a JavaScript</button> 

? – Jimmeh

+0

もちろん、私はアクションから次のものを返すとしましょう。 Javascript( "alert( 'Hello World');"); アラートダイアログの代わりに、「アラート(「Hello World」)」が表示されているページが表示されています。 –

答えて

16

ここでは、コントラストが正常に機能するためにコントローラがViewの詳細な知識を持っている必要があるため、実際にはそれを反パターンとして説明している例があります(blog post)。

public ActionResult DoSomething() { 
    string s = "$('#some-div').html('Updated!');"; 
    return JavaScript(s); 
} 
+0

パーフェクト、ありがとう。 –

+1

NP、ようこそ! – Joseph

+10

これを将来的に見る人に追加したいだけです。 javascriptの結果は、アクションがajax経由で呼び出されたときにのみ実行されます。このアクションをHtml.Actionlink経由で呼び出すと、スクリプトのテキストが返されますが、実行されません。 –

2

私は、クライアント上でJavascriptResultを返し、それを実行することが分かってきた唯一の方法は、jQueryを使っている:

public JavaScriptResult ShowAlert() { 
     var script = "alert('Hello');"; 
     return new JavaScriptResult() { Script = script }; 
} 
関連する問題