Отладка script, которая находится в частичном представлении

Почему я не могу отлаживать скрипты, которые находятся в частичном представлении, которое создается во время выполнения? Чтобы увидеть script в списке скриптов (например, в Chrome) и отладить его, я должен переместить его в "обычный" вид на верхнем уровне или мне нужно переместить его в отдельный .js файл. Но что, если script настолько мал, что я не хочу его перемещать в любом месте и все еще хочу уметь его отлаживать?

Ответ 1

Если вы не загружаете частичный вид через ajax (представление находится на месте при рендеринге начальной страницы), вы можете использовать "отладчик". Если код, который вы хотите запустить, добавляется в dom, IE не будет знать, где находится фактический код, который вы хотите отлаживать. Итак:

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

Ответ 2

Там гораздо лучший способ сделать это, просто используйте синтаксис

//@@ sourceURL=someValue

сразу после открытия тэга script. Пример:

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

- редактировать -

По-видимому, из-за некоторой проблемы совместимости с IE проблема с изменением исходного кода javascript была выше:

//# sourceURL=_fooPartialView.cshtml

Также обратите внимание, что, хотя ранее не упоминалось, @@было необходимо только для сопоставления источников в представлениях бритвы, поскольку значение "@" имело другое значение.

Ответ 3

Обычно считается, что плохая практика включает script внутри частичного представления. Вы можете столкнуться со всеми проблемами, связанными с несколькими ссылками и производительностью script. Лучший подход здесь состоит в том, чтобы обеспечить, чтобы script перемещался до метки-заполнителя в вашем теге головы. Для нескольких примеров этого, проверьте:

Связывание библиотек JavaScript в элементах управления пользователями

и

Включить файл JavaScript в частичный просмотр

Если вы настаиваете на загрузке script из частичного, то подход "отладчика" выше очень эффективен.