Почему я не могу отлаживать скрипты, которые находятся в частичном представлении, которое создается во время выполнения? Чтобы увидеть script в списке скриптов (например, в Chrome) и отладить его, я должен переместить его в "обычный" вид на верхнем уровне или мне нужно переместить его в отдельный .js файл. Но что, если script настолько мал, что я не хочу его перемещать в любом месте и все еще хочу уметь его отлаживать?
Отладка 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 из частичного, то подход "отладчика" выше очень эффективен.