2009-06-09 12 views
1

は私の部分図である:私のページでAJAXリクエストが完了した後、PartialViewで定義されたJavaScript関数を呼び出すにはどうすればよいですか?ここで

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<script type="text/javascript"> 
    function myFunction() { .... } 
</script> 
....other html content ... 

、私は部分的なビューをレンダリングするためにコントローラのアクションを呼び出すリンクを持っている:

<%= Ajax.ActionLink(..., new AjaxOptions { ..., OnSuccess = "myFunction" }) %> 

これは私のコントローラのアクションです: .. 戻り値PartialView( "TestControl"); ...

これはかなり簡単だと思いました。残念ながら、私は、JavaScriptのエラーを取得する:私はAJAX呼び出しの後に生成されたページのソースをチェックすると

Microsoft JScript runtime error: 'myFunction' is undefined.

、私はソースでmyFunctionを見ることができます。しかし、AJAXのOnSuccessでは、何らかの形でこの機能についてはわかりません。私が逃したものはありますか? AJAXを介してロードされる部分ビューの一部であるスクリプトを呼び出す方法はありますか? (私はeval()を使用しようとしましたが、何とか解決できませんでした)

ありがとうございます。

答えて

0

部分ビューをDOMに注入する前にOnSuccessが発生している可能性があります。あなたはすぐにそれを定義した後myFunctionを呼ぶ方が良いかもしれません:

function myFunction(){ 
    //code here 
} 
myFunction(); 

その方法は、myFunctionはスクリプト参照は部分ビューロジックによってDOMに注入されているので、できるだけ早くで、その定義(直後に呼び出されます部分ビューの実際の更新後に可能な限り)。

部分ビューの内容に対して操作する場合は、スクリプト参照を部分ビューの最後に移動する必要があるため、JSが実行される前にDOMが動作するようにする必要があります。

+0

私は実際にそれを直接呼び出す方法を知らない:私はそうする前に完了ajax要求を待つ必要があります。どうすればいいか教えていただけますか?ありがとう。分かりやすくするために – user119961

+0

答えが編集されました。フォローアップありがとう! –

関連する問題