_layout.cshtml 有代码行
@Scripts.Render("~/bundles/jquery")
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
默认情况下,它们被 MVC 放置在
<body>
标签内。但是当我将它们留在这个地方时,有时 jquery
不起作用。所以我决定把这三行放在 <head>
的 _layout.cshtml
块中,这样页面就会把样式和脚本文件放在 <head>
中,就像任何人对 php
或 jsp
所做的那样。好消息是当我将这些文件放在 <head>
中时,我的所有 jquery
又开始工作了。但是大多数 MVC 书籍都说将脚本放在 <body>
块中。那么我应该把它们放在哪里呢?
更新帖子:
这是我的捆绑文件:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery-ui-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
}
这是布局文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/css")
</head>
<body>
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@Scripts.Render("~/bundles/modernizr")
@RenderSection("scripts", required: false)
</body>
</html>
这是 View :
@{
ViewBag.Title = "TestPage";
}
<h2>TestPage</h2>
<input type="submit" name="name" value="Click me" id="btn"/>
<div id="d1"></div>
<script type="text/javascript">
$('#btn').click(function(){
alert('clicked');
});
</script>
这是 video to show that click does not work
最佳答案
在您的布局文件中,用于加载 jQuery 库的脚本标记包含在页面的末尾。但是下面还有一个叫做 scripts
的部分。因此,在您的各个页面(例如:索引、 View 等)中,您应该将 javascript 放在部分脚本中
<body>
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
</body>
并在您的 View 中(例如:索引 View )
@section scripts{
<script src="~/Scripts/SomePageSpecificFile.js"></script>
<script>
$(function(){
// Your other js code goes here
});
</script>
}
所以当 razor 渲染页面时,它将是
<body>
<script src="/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/SomePageSpecificFile.js"></script>
<script>
$(function(){
// Your other js code goes here
});
</script>
</body>
只要您在
scripts
部分中执行使用 jQuery 的特定于页面的 javascript,您应该没问题。关于asp.net-mvc-4 - 我应该将 js 脚本文件放在 mvc 应用程序中的什么位置,以便 jquery 运行良好?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34147155/