Одной вещью, которую вы можете рассмотреть, является добавление заполнителя содержимого «сценарии» на главную страницу, который загружает сценарии в конце тела. Таким образом, вы загружаете свои скрипты в конце страницы, чтобы не замедлять загрузку элементов DOM (как только скрипт начинает загружаться, он выполняет только один запрос за раз, потому что код может влиять на DOM). Это немного сложнее с PartialView - если вы включаете в них код, вам нужно найти способ отложить выполнение всего, что зависит от более поздних сценариев, после загрузки этих сценариев. Компромиссом может быть загрузка таких вещей, как jQuery, в заголовок и остальных ваших общих сценариев в конце тела.
Site.Master
<body>
...
<asp:ContentPlaceHolder runat="server" id="MainContent"></asp:ContentPlaceHolder>
...
<script type="text/javascript" src="<%= Url.Content( "~/scripts/jquery-1.4.1.min.js" ) %>"></script>
<asp:ContentPlaceHolder runat="server" id="ScriptContent"></asp:ContentPlaceHolder>
</body>
</html>
View
<asp:Content runat="server" ID="mainContent" ContentPlaceHolderID="MainContent">
... HTML ...
</asp:Content>
<asp:Content runat="server" ID="scriptContent" ContentPlaceHolderID="ScriptContent">
<script type="text/javascript">
$(function() {
$('.selector').click( function() {
...
});
});
</script>
</asp:Content>