MVC 4 底部的脚本 - 不执行“视图”页面中的<脚本>

scripts at the bottom in mvc 4 - Does not execute <scripts> in View page

本文关键字:脚本 底部 MVC 执行 视图      更新时间:2023-09-26

MVC4中,视图在页面底部包含script元素。

例如。在_layout.cshtml(在Shared文件夹下(,<script>标签放置在最底部。虽然我知道这会加快页面加载速度,但问题实际上是这样的:

在我的Views中,有时我碰巧使用一些脚本,例如 autocomplete ,如下所示:

<script type="text'javascript"> ...... </script>

这是不起作用的,因为scripts标签包含在页面的最后。(当时甚至没有加载JQuery(

痛苦的是,我不得不将Script Bundle rendering移到页面顶部。喜欢

render jquery first
then load scripts
那么,我

是否遗漏了某些内容,或者我应该始终将scripts标签保留在_layout.cshtml页面的顶部?

感谢您的回复。

好的。关键是:

将您的脚本anywhere放在您的页面中,但将它们包含在一个@section Scripts中。

这将确保无论您在哪里放置脚本,都包含 JQuery' _layout.cshtml' renders them with the

因为,在你的_layout.cshtml你有这个:

@Scripts.Render("~/bundles/RequiredBundles")
        @RenderSection("scripts", required: false) 

您可能希望将一些脚本放在 $.ready 中,这些脚本仅在加载整个页面时运行。

我认为代码生成这样做的原因是,如果您将自己的脚本添加到捆绑包中,那么它们将在大部分 html 正文加载到 dom 后执行。

如果你确保在编写自定义javascript时使用$.ready,那么无论它们在页面底部还是在head标签中,你都应该没有问题。

出于个人喜好,我将它们放在顶部(我喜欢只需要查看 head 标签即可找到加载的脚本(,并确保使用 $.ready。