繁体   English   中英

MVC4局部视图javascript捆绑问题

[英]MVC4 partial view javascript bundling Issue

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

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

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

<script type="text/javascript">
    $(function () {
        alert("test");
    });
</script>

_Layout Page代码加载jquery库

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

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

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

@section Scripts {
    <script type="text/javascript">
        alert("test");
    </script>
}

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

终于有了这个工作。 我从部分视图中删除了我的javascript并将其放在脚本部分的父视图(不是部分的)中。这个脚本部分是在创建带有脚手架(Create)的视图时自动创建的,并且放在了页。 为了实现这个功能,我必须将它移到页面顶部 - 在调用渲染部分之前。

ClientDependency正好解决了这个问题,并允许您将脚本引用添加到部分视图中,这些部分视图将汇总并放置在页面末尾(或指定的任何位置)。 它还逐页处理捆绑,版本控制和缩小。

确保脚本引用的开销是在“父”视图而不是部分视图上并没有真正打扰我,但如果你有大量的部分需要他们自己的脚本和CSS,那么Client Dependency可能会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM