где я должен поместить файлы сценариев js в приложение mvc, чтобы jquery работал хорошо?
_layout.cshtml имеет строки кода
@Scripts.Render("~/bundles/jquery")
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
по умолчанию они размещены внутри<body>
теги по MVC. Но когда я оставляю их в этом месте несколько раз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>
Вот мнение:
@{
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>