gpt4 book ai didi

c# - $ 未在 View 中定义

转载 作者:行者123 更新时间:2023-12-02 14:24:29 27 4
gpt4 key购买 nike

我正在开发 ASP.NET MVC 5。我有一个 viewstart.cshtml 并像这样导入了我的 jquery 的引用

<!-- jQuery and Bootstrap JS-->
<script src="~/Scripts/jQuery/jQuery-2.1.4.min.js"></script>
<script src="~/Scripts/Bootstrap/js/bootstrap.min.js"></script>

在我看来,HomeController 具有文档就绪警报功能,但出现错误,提示 $ 未定义。

但是当我将 jquery 直接导入到 HomeController 的 View 中时,它工作正常。这是为什么?我的 HomeController 的 View 实际上使用的是 viewstart.cshtml,其中包含 jquery 的引用。我是否以正确的方式在 Layout.cshtml 中导入所有 js/css 文件?感谢您的帮助

在我的 HomeController View 中,如果我直接引用 jquery,则不会出现错误并且工作正常。但我想执行一次,这样所有 View 都不需要引用它。

见下面的代码:

@{
ViewBag.Title = "Welcome";
}

<script src="~/Scripts/jQuery/jQuery-2.1.4.min.js"></script>

<script>
$(function () {
alert("hello francis!")
})
</script>

<h2>WELCOME !!</h2>

最佳答案

看起来您是在 jquery 之前加载自定义脚本。

确保 Layout.cshtml 中有类似的内容(不是 _ViewStart.cshtml )介于 @RenderBody 之间和</body> :

<script src="~/Scripts/jQuery/jQuery-2.1.4.min.js"></script>
<script src="~/Scripts/Bootstrap/js/bootstrap.min.js"></script>
@RenderSection("scripts", required: false)

并且在 View 中,您必须将脚本包含到 scripts 中部分如:

@section scripts {
<script>
//your custom scripts here
</script>
}

这将确保您的 jquery 将在您的脚本之前加载。

RenderBody中的 View 渲染期间,放置在 View 部分中的任何内容都不会被渲染。 ,并且只会在 RenderSection 中渲染.

因此 jquery 首先加载到布局文件中,然后才从包含使用 jquery 渲染的自定义脚本的 View 中加载部分。

关于c# - $ 未在 View 中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35054833/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com