2011-08-01 11 views
14

実行時に作成される部分ビューに存在するスクリプトをデバッグできないのはなぜですか? スクリプトのリスト(例えばChromeなど)でスクリプトを確認してデバッグするには、上位レベルの「通常の」ビューに移動する必要があります。別の.jsファイルに移動する必要があります。 しかし、スクリプトが小さすぎてどこにでも移動したくない場合でも、それをデバッグできるようにしたいのですが?部分ビューにあるスクリプトのデバッグ

答えて

20

ajaxで部分ビューを読み込まない場合(ビューは最初のページレンダリング時に配置されています)、 'デバッガ'を使用できます。実行したいコードがdomに追加されている場合、IEは実際のコードがどこにあるかを知りません。従って:

// javascript 
var foo = 2; 
debugger; 
// more javascript 
4

部分的なビューの内部にスクリプトを含めることは、一般的に不適切な方法です。あなたは、複数のスクリプトの参照とパフォーマンスであらゆる種類の問題に遭遇する可能性があります。ここでのより良いアプローチは、スクリプトが確実にheadタグのプレースホルダに移動するようにすることです。この上のいくつかの例については、チェックアウト:

Linking JavaScript Libraries in User Controls

Include JavaScript file in partial views

あなたが部分からスクリプトをロードすることを主張した場合、上記の「デバッガ」アプローチは非常に有効です。

10

はちょうどすぐにスクリプトタグを開いた後、構文

//@@ sourceURL=someValue 

を使用して、今これを行うにはもっと良い方法があります。例:以前に言及していないものの、

また
//# sourceURL=_fooPartialView.cshtml 

注意:どうやらによるソースマッピングがに上から変更されているJavaScriptのいくつかのIEの互換性の問題に

<script type="text/javascript"> 
    //@@ sourceURL=_fooPartialView.cshtml 
    function foo() {} 
</script> 

--edit--

「@」は他の意味を持っていたので、@@はかみそりビューのソースマッピングにのみ必要でした。

関連する問題