Я пытаюсь переместить все мои javascript-сообщения в конец страницы.Я использую MVC с Razor.Я написал вспомогательный метод для регистрации скриптов.Он сохраняет скрипты в порядке их регистрации и исключает дублирование.
@{ Html.RegisterScript("/scripts/someFile.js"); }
А потом, прямо перед закрывающим тегом body, я делаю что-то вроде этого:
@Html.RenderScripts()
</body>
Это все работает нормально, если все скрипты зарегистрированы на одной странице.Если я регистрирую некоторые сценарии в моем макете, а некоторые сценарии в моем внутреннем представлении, все идет не так, как надо.По сути, внутренний вид выполняется перед макетом.Поэтому, хотя сценарии во внутреннем представлении зависят от сценариев во внешнем представлении, они регистрируются ранее.
Так что, если у меня есть _Master.cshstml и он имеет
@{
Html.RegisterScript("script1.js");
Html.RegisterScript("script2.js");
}
И тогда у меня есть InnerView.cshtml с _Master.cshtml в качестве макета, и в представлении у меня есть
@{
Html.RegisterScript("script3.js");
}
Сценарии отображаются в следующем порядке: script3, script1, script 2.
Есть ли способ заставить макет выполнить перед внутренним видом?Я пытался перемещать вещи повсюду, и все, что кажется внутренним взглядом, всегда выполняется первым.Возможно, это ожидается?Если да, то как мне лучше всего выполнить то, что я пытаюсь сделать?