首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JQuery后车身ASP .NET MVC 4

JQuery后车身ASP .NET MVC 4
EN

Stack Overflow用户
提问于 2012-08-13 06:37:07
回答 2查看 12.7K关注 0票数 18

我刚刚创建了一个ASPMVC4 WebAPI项目。

在查看默认的_Layout.cshtml时,我看到jquery脚本是在主体呈现之后插入的(而不是在头部)。

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    @Styles.Render("~/Content/themes/base/css", "~/Content/css")
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>
    @RenderBody()

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

这会导致错误

代码语言:javascript
复制
$ is not defined 

当然,试着写

代码语言:javascript
复制
$(document).ready(function() {...}).

移动

代码语言:javascript
复制
@Scripts.Render("~/bundles/jquery")

进入_Layout.cshtml的head部分可以纠正这个问题,并且jquery可以按预期工作。

出什么事啦?我是不是做错了什么,Script.Render在_Layout.cshtml中的默认位置是有原因的?

EN

回答 2

Stack Overflow用户

发布于 2012-09-24 00:26:02

@Scripts.Render("~/bundles/jquery")导致了MVC4和VS2010的问题。当您尝试创建jQuery对话框时,此问题会变得更加明显。

正如JeffN825所说,唯一的出路是注释掉@Scripts.Render("~/bundles/jquery")

现在已知的未知是:注释掉@Scripts.Render("~/bundles/jquery")的分支是什么

我使用以下jquery库:

代码语言:javascript
复制
<script src="../../Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-1.8.23.min.js" type="text/javascript"></script>

注意: jquery-1.7.2.min.js将不起作用。

票数 3
EN

Stack Overflow用户

发布于 2016-01-12 10:32:41

虽然接受的答案链接到有关如何做到这一点的详细信息,但更直接的答案将如下所示:

_Layout.cshtml包含行...

代码语言:javascript
复制
@RenderSection("scripts", required: false)

...which将插入一个在视图中找到的名为“脚本”的部分-例如Index.cshtml:

代码语言:javascript
复制
<p>This is Index.cshtml</p>
@section scripts {
   <script>
      $(document).ready(function() {
         alert("This script is inserted by RenderSection after jQuery script is inserted.")
      })
   </script>
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11926405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档