実行時に作成される部分ビューに存在するスクリプトをデバッグできないのはなぜですか? スクリプトのリスト(例えばChromeなど)でスクリプトを確認してデバッグするには、上位レベルの「通常の」ビューに移動する必要があります。別の.jsファイルに移動する必要があります。 しかし、スクリプトが小さすぎてどこにでも移動したくない場合でも、それをデバッグできるようにしたいのですが?部分ビューにあるスクリプトのデバッグ
14
A
答えて
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--
「@」は他の意味を持っていたので、@@はかみそりビューのソースマッピングにのみ必要でした。
関連する問題
- 1. 部分ビューから別の部分ビューにローカルを渡す
- 2. ビューで部分ビューを使用し、データを部分ビューにする
- 3. 部分ビューを別の部分ビューに挿入する問題(Collection.cshtml問題)
- 4. スクリプトを使用せずに部分ビューを別の部分ビューで更新する方法はありますか?
- 5. ASP.NET MVC 3の部分ビュー(複数の部分ビューから1つのビューへ)
- 6. ビューモデルを部分ビューにバインド
- 7. Asp.net MVC <script>の部分ビューのタグが複数ある(同じ)部分ビュー
- 8. 部分ビューasp.net mvc
- 9. _Layout.cshtmlの下部にあるスクリプトのビューまたは部分的なビューをレンダリングするにはどうすればいいですか?
- 10. 概要/フロントページのViewModelビューと部分ビュー
- 11. CodeIgniterの部分的なビュー
- 12. 部分ビューのポストバック--ASP.NET MVC3
- 13. Site.MasterのMVC部分ビュー
- 14. 部分ビューのコントローラASP.NET MVC
- 15. MVC部分的なビューによるページング
- 16. スクリプトの下の部分にphp変数がありません
- 17. asp.net mvc - 部分データモデルを部分ビューに渡す
- 18. イオニックマップ - ビューの小さな部分にフィッティングマップ
- 19. 別の部分ビューから部分ビューを呼び出すASP.NET MVC
- 20. コンパイル時エラー:部分ビュー内で部分図をレンダリングする
- 21. RecyclerView.ViewHolderの内部でビューが部分的に検出される
- 22. UIビュー部分スクロール(iOS)
- 23. MVC3部分ビューとGoogle Analytics
- 24. 部分ビューで部分ビューを読み込むことはできますか?
- 25. mvc部分ビューajax更新部分ビューをページとして返す
- 26. パラメータを部分ビューに送信
- 27. jsファイルを部分ビューにロード
- 28. リレーショナルデータリストを部分ビューに戻す
- 29. スクリプトの最下部にあるRubyメソッド?
- 30. タブで異なる部分ビューをクリック