jQuery 在 ASP.NET Core 2.2 Razor 视图中不可用

1 Z*_*ech 4 jquery asp.net-core

我在 Visual Studio 2017 社区(版本 15.9.6)中创建了一个简单的 ASP .Net Core(版本 2.2)Web 应用程序(非 MVC)

默认情况下,jQuery(版本 3.3.1)包含在 wwwroot/lib/jquery 目录中。

我正在使用 jQuery IntelliSense。

jQuery 在默认的 /Pages/Shared_Layout.cshtml 文件中被正确引用。

我将以下代码添加到 default.csthml 页面:

<script type="text/javascript">
     $(document).ready(function () {
         $("p").click(function () {
             $(this).hide();
         });
     });
</script>

<p>If you click on me, I will disappear.</p>
<p>Click me away!</p>
<p>Click me too!</p>
Run Code Online (Sandbox Code Playgroud)

默认情况下,这个简单的代码不起作用。

我不理解为什么。

控制台错误

0x800a1391 - JavaScript 运行时错误:“$”未定义

标记

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>@ViewData["Title"] - jQueryTest2</title> 
    <link rel="stylesheet" href="~/css/site.css" /> 
</head> 
<body> 
    <header></header> 
    <div class="container"> 
        <main role="main"> @RenderBody() </main> 
    </div> 
    <footer></footer> 
    <environment exclude="Development"> 
        <script src="cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/>
    </environment>
</body> 
</html> 
Run Code Online (Sandbox Code Playgroud)

Tan*_*jel 7

首先加@RenderSection("Scripts", required: false)在的底部body你的Layout.cshtml页面。

然后你里面的脚本@section Scripts如下:

@section Scripts{
    <script type="text/javascript">
       $(document).ready(function () {
           $("p").click(function () {
             $(this).hide();
           });
       });
    </script>
}
Run Code Online (Sandbox Code Playgroud)

希望这能解决您的问题!