7

JQueryAJAX呼び出しを介して2つのネストされたパーシャルを<div>要素に動的にロードするASP.NETMVC4ビューがあります。それぞれのパーシャルには、独自のJavascriptのかなり大きな山があります。successすべてを機能させるために、現在、各AJAX呼び出しのすべてのJavascriptを使用しています。

function LoadPartial(someImportantId) {
    $.ajax({
        url: '@Url.Action("LoadThePartial")' + '?id=' + someImportantId,
        type: 'POST',
        async: false,
        success: function (result) {
            $("#partialContainerDiv").html(result);
            //here there be great piles of javascript
        }
    });
}

これらのパーシャルは2つあり、それぞれに数百行のJavascriptが必要なため、メインビューファイルの管理が難しくなっています。このスクリプトコードをすべて別の.jsファイルに入れたいのですが、Javascriptはまだ十分に新しいので、Chromeのスクリプトデバッグツールに大きく依存しており、その方法(および場合)を理解するのに苦労しています。このスクリプトファイルをロードできます。私はもう試した:

デバッガーにスクリプトがありません

  • スクリプトインクルードをメインビューに追加します。これは機能しません。パーシャルのJavascriptはどれも正しく接続されません。これは、同期レベルでは意味があります。

ものが機能しない

AJAXがロードされたパーシャル用に別のJavascriptファイルを作成し、それでもクライアントでパーシャルをデバッグできる方法はありますか?さらに重要なことに、AJAXでロードされた部分ビュー用にこのJavascriptをすべてどこに置くのですか?

4

2 に答える 2

7

メイン ページに含まれる関数でパーシャルのスクリプトをラップします。AJAX 成功ハンドラーで関数を呼び出し、パーシャルが読み込まれた後にスクリプトを実行します。

于 2012-12-26T16:42:09.037 に答える
1

現在、動的な JS コードを主要なブラウザーのソース ツリービューに配置するソリューションがあります。これは、デバッグ可能にするために必要なすべてです。追加:

//# sourceURL=YOUR_FILENAME_OR_FULL_PATH_HERE

<script>動的に読み込まれた部分ビューのタグ内の任意の場所。私の実験では、# の後のスペースは Firefox ではなく Chrome で必要なようです。これは基本的に必要であることを意味します。

ソース: https://developers.google.com/web/updates/2013/06/sourceMappingURL-and-sourceURL-syntax-changedおよびその他のいくつかのスタック オーバーフローに関する質問

于 2018-06-06T15:36:20.060 に答える