我正在尝试将我的所有
javascript包含移到页面底部.我正在使用带Razor的MVC.我写了一个帮助方法来注册脚本.它使脚本按照它们注册的顺序保留,并且不包括欺骗.
@{ Html.RegisterScript("/scripts/someFile.js"); }
@Html.RenderScripts() </body>
如果脚本在一个页面上全部注册,则一切正常.如果我在我的布局中注册了一些脚本,并在内部视图中注册了一些脚本,那么事情就会出错.基本上,内部视图在布局之前执行.因此,尽管内部视图中的脚本依赖于外部视图中的脚本,但它们之前已经过注册.
所以,如果我有_Master.cshstml,它有
@{ Html.RegisterScript("script1.js"); Html.RegisterScript("script2.js"); }
然后我将InnerView.cshtml与_Master.cshtml作为其布局并在我拥有的视图中
@{ Html.RegisterScript("script3.js"); }
脚本按以下顺序呈现:script3,script1,脚本2.
有什么办法可以强制布局在内部视图之前执行吗?我已经尝试过各种各样的东西,内部视图似乎总是先执行.也许这是预期的?如果是这样,那么我完成我想要做的最好的方法是什么?