Как вставить код jQuery? Uncaught ReferenceError: $ не определен в виде кода бритвы

У меня есть следующий код бритвы Asp.Net MVC 4 в конце файла.

....
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

<script type="text/javascript">
    $('#Address_State').val('MA');
</script>
////// End of file

Однако он сгенерировал следующий html-код. И он вызывает ошибку в строке $('#Address_State').val('MA'); , Сообщение об ошибке: Uncaught ReferenceError: $ is not defined. Как вставить код jQuery в файл бритвы?

.....
<script type="text/javascript">
    $('#Address_State').val('MA'); // Uncaught ReferenceError: $ is not defined
</script>
            </section>
        </div>
        <footer>
            <div class="content-wrapper">
                <div class="float-left">
                    <p>&copy; 2013 - Paperspeed</p>
                </div>
            </div>
        </footer>

        <script src="/Scripts/jquery-1.9.1.js"></script>


    <script src="/Scripts/jquery.unobtrusive-ajax.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>


    </body>
</html>

Обновить:

Ниже перечислены последние четыре строки _Layout.cshtml.

        @Scripts.Render("~/bundles/jquery")
        @RenderSection("scripts", required: false)
    </body>
</html>

Ответ 1

Вам нужно включить JQuery, прежде чем использовать его.

Обычный способ достичь этого - в вашем макете макета, включая ваши скрипты в голове. Или поместите необязательный раздел (глава), где вы можете условно включить скрипты

Сначала создайте требуемый пакет для ваших сценариев jquery, которые вы хотите на каждой странице:

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/js/required").Include(
        "~/Scripts/jquery-2.0.2.js"));

    //other bundles
}

Затем создайте шаблон сайта:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>Title</title>
    @Styles.Render("~/css/required")
    @RenderSection("head", false) //For css on a page by page basis
</head>
<body>
    @RenderBody()
    @Scripts.Render("~/js/required") //Here add your jquery include
    @RenderSection("scripts", false) //Here you add scripts at the bottom of the page
</body>
</html>

Затем используйте этот файл бритвы в качестве базового макета для всех других производных видов бритвы, например:

@{
    ViewBag.Layout = "~/Views/Shared/_MasterLayout.cshtml";
}

@section head {
     //Any css you want to add
}

<p>Some html content</p>

@section scripts {
    //scripts you want to include at the bottom on a page by page basis
}

Ответ 2

Переместите следующие строки кода вверху вашего представления _Layout.cshtml внутри тега body. Затем сначала загрузятся сценарии jQuery.

<body>
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)

Ответ 3

Ваш скрипт вызывается до того, как jquery будет загружен, поэтому он не знает, что означает $. Попробуйте загрузить сценарии jquery в разделе head вашего файла макета.

Ответ 4

jquery add после тела рендеринга? вы будете двигаться следующим образом "

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

"строки в теги

как это "

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
</head>

"