我在文件末尾有以下 Asp.Net MVC 4 razor 代码。
....
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
<script type="text/javascript">
$('#Address_State').val('MA');
</script>
////// End of file
但是,它生成了以下 html 代码。它会在 $('#Address_State').val('MA');
行引发错误。错误消息为Uncaught ReferenceError:$未定义
。如何在razor文件中插入jQuery代码?
.....
<script type="text/javascript">
$('#Address_State').val('MA'); // Uncaught ReferenceError: $ is not defined
</script>
</section>
</div>
<footer>
<div class="content-wrapper">
<div class="float-left">
<p>© 2013 - Paperspeed</p>
</div>
</div>
</footer>
<script src="/Scripts/jquery-1.9.1.js"></script>
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>
</body>
</html>
更新:
以下是_Layout.cshtml的最后四行。
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
</body>
</html>
最佳答案
在实际使用之前,您需要包含 JQuery。
实现此目的的常见方法是在主布局的头部包含您的 require 脚本。或者放置一个可选部分(标题),您可以在其中有条件地包含脚本
首先为每个页面上想要的 jquery 脚本创建一个必需的包:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/js/required").Include(
"~/Scripts/jquery-2.0.2.js"));
//other bundles
}
然后创建一个网站模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Title</title>
@Styles.Render("~/css/required")
@RenderSection("head", false) //For css on a page by page basis
</head>
<body>
@RenderBody()
@Scripts.Render("~/js/required") //Here add your jquery include
@RenderSection("scripts", false) //Here you add scripts at the bottom of the page
</body>
</html>
然后使用此 razor 文件作为所有其他派生 razor View 的基本布局,如下所示:
@{
ViewBag.Layout = "~/Views/Shared/_MasterLayout.cshtml";
}
@section head {
//Any css you want to add
}
<p>Some html content</p>
@section scripts {
//scripts you want to include at the bottom on a page by page basis
}
关于jquery - 如何插入jQuery代码? Uncaught ReferenceError : $ is not defined in view razor code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15458523/