Что вы обычно делаете, это помещаете некоторые ресурсы сценариев в список в окне просмотра, а затем заставляете свой шаблон проходить через этот список и генерировать сценарии для вас.
В частичном:
@{
ViewBag.ScriptIncludes = ViewBag.ScriptIncludes ?? new List<string>();
ViewBag.ScriptIncludes.add("script1.js");
}
В макете (_Layout.cshtml)
@if (ViewBag.ScriptIncludes != null)
{
foreach (string url in ViewBag.ScriptIncludes)
{
<script src="@url" type="text/javascript"></script>
}
}
В обычных условиях это позволяет связывать сценарии с частичным, что довольно неплохо, и это хорошая идея, если вы толькопри загрузке страницы обновляется фрагмент, который существует на странице.
На странице должны быть предварительно загружены сценарии.Вы не должны перезагружать скрипты, получая ресурс скрипта через ajax и вставляя его на страницу.В идеале вы бы не получили html поверх ajax, но некоторые люди считают это приемлемым.Вы только хотите ввести HTML на страницу, а не больше сценариев.Если у вас есть обработчики событий для элементов внутри частичного представления, рассмотрите возможность подключения обработчиков событий к контейнеру вместо элементов по отдельности.
Однако, учитывая, что вы перезагружаете потенциально любое представление, я думаю, вам лучшев том числе ваши сценарии в голове.Это гарантирует, что вы не найдете конфликтующие сценарии позже.Ваш сайт, по сути, представляет собой приложение, которое изначально загружает небольшую нагрузку, но не требует обновления.