MVC4局部视图javascript捆绑问题

mar*_*tin 9 javascript asp.net-mvc-4 bundling-and-minification asp.net-optimization

我正在使用visual studio 11开发一个项目ASP.net 4,MVC4(RC).我正在尝试渲染一个呈现局部视图的MVC4 Razor视图.我的部分视图需要一些JavaScript.在我的部分视图中,当我在脚本部分中包含我的javascript,如下所示它似乎没有加载.

@section Scripts {
    <script type="text/javascript">
        $(function () {
            alert("test");
        });
    </script>
}
Run Code Online (Sandbox Code Playgroud)

如果我删除脚本部分它失败,因为当文档就绪代码运行时,jquery库(在我的_Layout.cshtml页面上捆绑并呈现)尚未加载.

<script type="text/javascript">
    $(function () {
        alert("test");
    });
</script>
Run Code Online (Sandbox Code Playgroud)

_Layout Page代码加载jquery库

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
Run Code Online (Sandbox Code Playgroud)

有没有人知道这个解决方案,还是我只是错误的方式?它破坏了我的头!

Dar*_*rov 10

不要将您的脚本包装document.ready在部分中:

@section Scripts {
    <script type="text/javascript">
        alert("test");
    </script>
}
Run Code Online (Sandbox Code Playgroud)

啊,不要把脚本放在局部.Javascript代码应放在单独的javascript文件中.如果你想在加载部分时执行一些javascript,你只需将这个脚本外部化为一个可重用的函数/插件,你可以在部分加载后调用它.

  • 你发现@martin的问题非常有趣,即使你的解决方案是正确的解决方案,他也标记了自己的答案.:d (3认同)