首页 > 解决方案 > 为什么我的 javascript 类在 .cshtml 文件中不可见?

问题描述

我创建了一个新的 .net-core 项目,然后我添加了一个 bundleconfig.json 文件用于捆绑和缩小,我还添加了一个 package.json 文件来处理依赖项。

我将我的包包含在共享的 _Layout.cshtml 文件中,但随后我尝试在我的 Index.html 文件中初始化我的类。

所以在我的 _Layout.cshtml 文件中,我有以下几行:

<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
<script src="~/js/site.min.js"></script>
@RenderSection("Scripts", required: false)

site.min.js 包含我的课程(Swiper)。

在我的 Index.cshtml 中,我有以下几行:

<script>
    var swiper = new Swiper('.swiper-container', {
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        },
    });
</script>

此时 Swiper 在没有明确包含的情况下未定义,但它存在于 site.min.js 中。在我将此标签的内容移动到一个 javascript 文件中后,该文件也是我的 site.min.js 的一部分,它终于开始工作了。

我不知道的脚本标签是否有任何范围?

标签: javascriptasp.net-core.net-core

解决方案


您需要将它们包装成Section这样:

@section Scripts {
<script>
    var swiper = new Swiper('.swiper-container', {
        navigation: {
            nextEl: '.swiper-button-next',
            prevEl: '.swiper-button-prev',
        },
    });
</script>
}

“脚本”这个名字可以是你想要的,只要它在布局中是一样的。


推荐阅读