¿Dónde debo colocar los archivos de script js en una aplicación mvc para que jquery funcione bien?

_layout.cshtml tiene líneas de código

@Scripts.Render("~/bundles/jquery")    
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr") 

por defecto se colocan dentro del<body> etiquetas por MVC. Pero cuando los dejo en este lugar algunas vecesjquery No funciona. así que he decidido poner esas tres líneas en el<head> bosquejar_layout.cshtml para que la página ponga estilos y archivos de script en el<head> como lo haría cualquiera conphp ojsp. Lo bueno es cuando pongo esos archivos en<head> toda mijquery Empecé a trabajar de nuevo. Pero la mayoría de los libros de MVC dice que coloque los guiones en el<body> bloquear.

Entonces, ¿dónde debo ponerlos?

publicación actualizada:

Aquí está mi archivo de paquete:

       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*"));
}

Aquí está el archivo de diseño:

<!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>

Aquí está la vista:

@{
    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>

aqui estavideo para mostrar que el clic no funciona

Respuestas a la pregunta(1)

Su respuesta a la pregunta