Question

J'ai édité cette question originale car je pense avoir réduit le problème ...

Sur mon site, une seule vue ne me permet pas de placer $ document.ready dans un maître-contenu contentplaceholder. J'ai réduit cette page à l'essentiel et la seule chose qui la distingue, c'est qu'elle a un itinéraire personnalisé dans global.asax

 routes.MapRoute("Books",
                 "{controller}/{action}/{keywords}/{pageNumber}",
                  new { controller = "Books", action = "SearchResults" }
                 );

Avez-vous une idée de la raison pour laquelle cette route personnalisée arrêterait $ document.ready de fonctionner correctement lorsqu’elle est placée dans une zone masterplace contentplaceholder?

Était-ce utile?

La solution

J'ai eu le même problème et il s'est avéré que lorsque j'utilisais un certain itinéraire, la hiérarchie de fichiers perçue du site, telle que le lien ../../Content pour le fichier .js, ne fonctionnait plus. . Je l'ai corrigé en changeant ma référence de script jquery pour ressembler à ceci:

<script src="<%= Url.Content("~/Content/jquery-1.2.6.min.js") %>" type="text/javascript"></script>

Autres conseils

Votre page maître (ou la page d'affichage si vous n'utilisez pas de pages maîtres) doit faire référence à jquery. Ceci est inclus dans la dernière version bêta du framework MVC.

Vérifiez que jQuery est bien inclus dans la balise de votre page.

vérifiez également la syntaxe ...

$(document).ready(function() { alert('loaded'); });

ces versions abrégées fonctionnent également:

$().ready(function() { alert('loaded'); });
$(function() { alert('loaded'); });

Il suffit de l'insérer quelque part dans le contrôle de contenu de votre page d'affichage dans une <script ...> balise.

<asp:Content ID="Content1" ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
    <div class="contentItem">
        <%!-- yadda --%>
    </div>

    <script type="text/javascript">
        $(document).ready(function() {
         // do your worst
        });
    </script>
</asp:Content>

Si des éléments sont exécutés sur chaque page, vous pouvez les extraire dans un fichier .js et y accéder à partir de la page maître. Mais pour les fonctions relatives à une vue spécifique, il s’agit probablement du moyen le plus simple et facile à gérer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top