首页 > 解决方案 > 稍后加载jquery时如何在MVC视图中添加Javascript方法

问题描述

我的项目中有很多 MVC 视图,它们都有自己特定的 JS 功能。我想在视图本身中添加这些功能。

@{
}
    <div>
    ....
    </div>
<script>
   $(document).ready(function(){
       $("#btn").click(function(){
            doSomething();
       });
   });

   function doSomething(){
   }
</script>

但问题是,jQuery 引用位于body标签的末尾,并且无法更改。当视图加载较早时,会出现 $ 未定义的错误。

有什么方法可以让 JS 仍然在视图中。

标签: asp.net-mvc

解决方案


RenderSection就像 HTML 的占位符。它保证您编写的任何 HTML 将始终呈现在布局中定义的特定位置。

您可以RenderSection在布局中使用,如下所示:

<body>
...
...
<script src="jquery.min.js"></script>
@RenderSection("Scripts", required: false)
</body>

然后在您使用此布局的视图中,您可以添加@section如下:

@{
    Layout="_layout.cshtml"
}
<div>
...
...
</div>
@section Scripts {
    <script type="text/javascript">
        $(document).ready(function(){
           $("#btn").click(function(){
                doSomething();
           });
        });

        function doSomething(){
        }
    </script>
}

欲了解更多信息,请查看章节


推荐阅读