119 votes

comment ajouter script src à l'intérieur d'une vue en utilisant Layout

Je veux inclure une référence javascript comme :

<script src="@Url.Content("~/Scripts/jqueryFoo.js")" type="text/javascript"></script>

Si j'ai une vue Razor, quelle est la bonne façon de l'inclure sans devoir l'ajouter à la mise en page (je n'en ai besoin que dans une seule vue spécifique, pas dans toutes) ?

En aspx, nous pourrions utiliser des supports de placement de contenu . J'ai trouvé des exemples plus anciens utilisant aspx dans mvc mais pas Razor view

194voto

Brad Christie Points 58505

En fonction de la façon dont vous voulez l'implémenter (s'il y avait un emplacement spécifique où vous vouliez les scripts), vous pourriez implémenter une @section au sein de votre _Layout ce qui vous permettrait d'ajouter des scripts supplémentaires à partir de la vue elle-même, tout en conservant la structure. par ex.

_Layout

<!DOCTYPE html>
<html>
  <head>
    <title>...</title>
    <script src="@Url.Content("~/Scripts/jquery.min.js")"></script>
    @RenderSection("Scripts",false/*required*/)
  </head>
  <body>
    @RenderBody()
  </body>
</html>

Voir

@model MyNamespace.ViewModels.WhateverViewModel
@section Scripts
{
  <script src="@Url.Content("~/Scripts/jqueryFoo.js")"></script>
}

Sinon, ce que vous avez est très bien. Si cela ne vous dérange pas qu'il soit "en ligne" avec la vue qui a été produite, vous pouvez placer l'élément <script> dans la vue.

13voto

Dilip Nannaware Points 863

Si vous utilisez le moteur de vue Razor, modifiez le fichier _Layout.cshtml. Déplacez le @scripts.Render("~/bundles/jquery") présent dans le footer vers la section header et écrivez le code javascript / jquery comme vous le souhaitez :

@Scripts.Render("~/bundles/jquery")
<script type="text/javascript">
    $(document).ready(function () {
        var divLength = $('div').length;
        alert(divLength);
    });
</script>

7voto

Vous pouvez ajouter les balises script comme nous l'utilisons dans asp.net en faisant des validations côté client comme ci-dessous.

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>
<script type="text/javascript" src="~/Scripts/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
    $(function () {
       //Your code
    });
</script>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X