J'ai le code de rasoir Asp.Net MVC 4 suivant à la fin du fichier.
....
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
<script type="text/javascript">
$('#Address_State').val('MA');
</script>
////// End of file
Cependant, il a généré le code html suivant. Et cela soulève une erreur à la ligne $('#Address_State').val('MA');
. Le message d'erreur est Uncaught ReferenceError: $ is not defined
. Comment insérer du code jQuery dans le fichier rasoir?
.....
<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>© 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>
Mettre à jour:
Voici les quatre dernières lignes de _Layout.cshtml.
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
</body>
</html>
Vous devez inclure JQuery avant de l'utiliser.
Un moyen courant d’atteindre cet objectif consiste à inclure dans la structure principale les scripts requis. Ou placez une section facultative (tête) où vous pouvez inclure conditionnellement des scripts
Commencez par créer un ensemble requis pour vos scripts jQuery sur chaque page:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/js/required").Include(
"~/Scripts/jquery-2.0.2.js"));
//other bundles
}
Créez ensuite un modèle de site:
<!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>
Utilisez ensuite ce fichier rasoir comme structure de base pour toutes les autres vues de rasoir dérivées comme celle-ci:
@{
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
}
Déplacez les lignes de code suivantes en haut de votre vue _Layout.cshtml à l'intérieur de la balise body. Ensuite, les scripts jQuery seront chargés en premier.
<body>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
Votre script est appelé avant même que jquery ne soit chargé, il ne sait donc pas ce que signifie $. Essayez de charger les scripts jQuery dans la section head de votre fichier de présentation.
jquery add est après le corps de rendu? vous vous déplacerez après [.____. ""
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
" lignes aux balises
comme ça "
@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)
</head>
"