onde devo colocar os arquivos de script js em um aplicativo mvc para que o jquery funcione bem?
o _layout.cshtml possui linhas de código
@Scripts.Render("~/bundles/jquery")
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
por padrão, eles são colocados dentro do<body>
tags por MVC. Mas quando eu os deixo neste lugar algumas vezesjquery
não funciona. então eu decidi colocar essas três linhas no<head>
bloquear_layout.cshtml
para que a página coloque estilos e arquivos de script no<head>
como qualquer um faria comphp
oujsp
. O bom é que eu coloco esses arquivos em<head>
todo meujquery
começou a trabalhar novamente. Mas a maioria dos livros do MVC diz para colocar os scripts no<body>
quadra.
Então, onde devo colocá-los?
postagem atualizada:
aqui está o meu arquivo de pacote configurável:
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*"));
}
aqui está o arquivo de layout:
<!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>
Aqui está a visão:
@{
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>