PartialViewの場合は、サーバー上のビューでレンダリングしているので、Daveの方法が最も効果的です。コードをDOM準備完了イベントに配線するだけです。
$(document).ready(function(){
//Javascript logic to fire goes here
});
か、速記のバージョンをprever場合...
$(function(){
//Javascript logic to fire goes here
});
あなたは、同じ方法で動作するAjaxを介してロードされている部分図をレンダリングしている場合。 jQueryは、Ajaxを介してクライアントに渡されたhtmlのjavascriptを実行します。これは、正しくリコールすれば、DOMにアタッチされた後です(これをテストすることは自由です。DOMにアタッチされたメモリを試してみます。 load()
メソッドの機能です)、実行するjavascriptが応答にあると仮定します。親ページにAjaxリクエストを送信している場合は、完全なイベントに接続することをお勧めします。
$("#wrapperAwaitingContent").load("/Grids/MyGridPartial", {id: null /*parameters*/}, function(text, status, xhr){
//Javascript logic to fire goes here
});
は私にとってコールで使用されるURLは、またのオプションがあり
$("#wrapperAwaitingContent").load("@Url.Action("MyGridPartial", "Grids")", {id: null /*parameters*/}, function(text, status, xhr){
//Javascript logic to fire goes here
});
サーバー上UrlHelperを使用して解決された(私はここでは、クライアント側のパラメータを移入しています) Unobtrusive Ajaxを使用してこれに似た何かをしてください。私はそこには、それが終了していますときに呼び出すHTMLやメソッドを受信する要素以外のAjaxOptionsに設定できる複数のプロパティがあるが、私は見つける
@Ajax.ActionLink("Load Data", "MyGridPartial", "Grids", new { id = null/*parameters*/ }, new AjaxOptions() { UpdateTargetId = "wrapperAwaitingContent", OnComplete="onCompleteMethodName" })
を(私はここでは、サーバー側のパラメータを移入しています) 「共有のJavaScriptファイルで定義されたLLの再利用機能と彼らはすでにそこから移入されていない場合にのみ、それらを取り込み、このような何か...
$("a[data-ajax='true']").each(function() {
var ajaxUpdate = $(this).closest("data-ajax-container");
$(this).attr("data-ajax-update", $(this).attr("data-ajax-update") ? $(this).attr("data-ajax-update") : ajaxUpdate);
$(this).attr("data-ajax-mode", $(this).attr("data-ajax-mode") ? $(this).attr("data-ajax-mode") : "replace");
$(this).attr("data-ajax-success", $(this).attr("data-ajax-success") ? $(this).attr("data-ajax-success") : "AjaxSuccess");
$(this).attr("data-ajax-complete", $(this).attr("data-ajax-complete") ? $(this).attr("data-ajax-complete") : "AjaxComplete");
$(this).attr("data-ajax-failure", $(this).attr("data-ajax-error") ? $(this).attr("data-ajax-error") : "AjaxError");
});
あなたは彼HTMLの半分がレンダリングされるときに、サーバー上でJavaScriptを実行する」という意味しますか? " –
基本的には、パーシャルビューがレンダリングされた後、クライアント側の部分ビューによって提供されるデータ(モデル)にアクセスする必要があります。私はモデルに対して操作を実行するいくつかのクライアント側のコードを実行できるように、javascript関数を起動するためにさまざまな方法を試しましたが、私が行ったすべての試みはひどく失敗しました。 –