it-swarm.com.de

Wie füge ich jQuery-Code ein? Nicht abgerufener ReferenceError: $ ist nicht im Code der View-Razor definiert

Ich habe den folgenden Asp.Net MVC 4-Rasierercode am Ende der Datei.

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

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

Es wurde jedoch der folgende HTML-Code generiert. Und es gibt Fehler in der Zeile $('#Address_State').val('MA');. Die Fehlermeldung lautet Uncaught ReferenceError: $ is not defined. Wie füge ich jQuery-Code in die Rasiererdatei ein?

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

Update:

Das Folgende ist die letzten vier Zeilen von _Layout.cshtml.

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

Sie müssen JQuery hinzufügen, bevor Sie es tatsächlich verwenden.

Ein üblicher Weg, um dies zu erreichen, besteht darin, dass Sie in Ihrem Master-Layout die erforderlichen Skripts im Kopf verwenden. Oder platzieren Sie einen optionalen Abschnitt (Kopf), in den Sie Skripts bedingt einfügen können

Erstellen Sie zunächst ein erforderliches Bundle für Ihre Jquery-Skripts, die Sie auf jeder Seite wünschen:

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

    //other bundles
}

Dann erstellen Sie eine Site-Vorlage:

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

Verwenden Sie dann diese Rasiererdatei als Basislayout für alle anderen abgeleiteten Rasiereransichten wie folgt:

@{
    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
}
23
gdp

Verschieben Sie die folgenden Codezeilen an den Anfang Ihrer _Layout.cshtml-Ansicht innerhalb des body-Tags. Dann werden die jQuery-Skripts zuerst geladen.

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

Ihr Script wird aufgerufen, noch bevor die Jquery geladen wird, damit es nicht weiß, was $ bedeutet. Versuchen Sie, die Jquery-Skripts im Kopfbereich Ihrer Layoutdatei zu laden.

5
PSL

jquery add ist nach dem Renderkörper? Sie werden sich nach bewegen. "

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

" Zeilen zu Tags 

so was "

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

"

0