Цель ОП заключается в том, что он хочет определить встроенные сценарии в своем частичном представлении, которое, как я предполагаю, является специфическим только для этого частичного представления, и включить этот блок в раздел сценариев.
Я понял, что он хочет, чтобы этот Частичный Взгляд был самодостаточным. Идея аналогична компонентам при использовании Angular.
Мой способ состоял бы в том, чтобы просто сохранить сценарии в Частичном представлении как есть. Теперь проблема заключается в том, что при вызове Partial View он может выполнить сценарий там раньше всех других сценариев (который обычно добавляется внизу страницы макета). В этом случае у вас есть только скрипт Partial View, ожидающий другие скрипты. Есть несколько способов сделать это. Самый простой, который я использовал ранее, это использование события в body
.
На моем макете у меня было бы что-то внизу, как это:
// global scripts
<script src="js/jquery.min.js"></script>
// view scripts
@RenderSection("scripts", false)
// then finally trigger partial view scripts
<script>
(function(){
document.querySelector('body').dispatchEvent(new Event('scriptsLoaded'));
})();
</script>
Тогда на моем частичном виде (внизу):
<script>
(function(){
document.querySelector('body').addEventListener('scriptsLoaded', function() {
// .. do your thing here
});
})();
</script>
Другое решение заключается в использовании стека для передачи всех ваших скриптов и вызова каждого из них в конце. Другим решением, как уже упоминалось, является шаблон RequireJS / AMD, который также очень хорошо работает.