Я только что создал проект ASP.NET MVC 4 WebAPI.
При взгляде на файл _Layout.cshtml по умолчанию я вижу, что jquery script вставляется после визуализации тела (не в голове).
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
@Styles.Render("~/Content/themes/base/css", "~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
@RenderBody()
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
</body>
</html>
Это вызывает ошибку
$ is not defined
конечно, пытаясь написать
$(document).ready(function() {...}).
Перемещение
@Scripts.Render("~/bundles/jquery")
в головной раздел _Layout.cshtml исправляет проблему, а jquery работает как ожидалось.
Что? Я что-то делаю неправильно, и есть причина для размещения по умолчанию Script.Render внутри _Layout.cshtml?