2009-06-22 8 views
5

J'essaie d'utiliser la bibliothèque jquery dans ASP.NET dans un sous-dossier appelé "samples" avec une page maître située dans le répertoire racine. Actuellement, les références aux scripts jquery se trouvent dans l'en-tête de la page maître. Si la page que je crée est également dans le répertoire racine, tout fonctionne correctement. Si je déplace la page vers le sous-répertoire "samples", la jquery se brise.Utilisation de JQuery dans un sous-dossier lorsque la page MasterPage se trouve dans le dossier racine

Je peux résoudre le problème en utilisant quelque chose comme ce qui suit dans la balise head:

<script src="<%=ResolveUrl("~/js/jquery.js")%>" type="text/javascript"></script>

... mais je perds la possibilité d'utiliser jquery IntelliSense, parce que je ne suis plus directement connecté au fichier en temps de conception. Donc, ma question est la suivante: Comment puis-je utiliser la bibliothèque jquery sur une page .aspx sans perdre la connectivité à l'intellisense quand ma page est dans un sous-dossier et la page maître est à la racine?

Répondre

10

utilisent simplement ceci:

<script src="/js/jquery.js" type="text/javascript"></script> 

mettre /avantjs faire l'affaire. Je garde toujours mes fichiers css et javascript dans des dossiers séparés et j'utilise ce réglage pour les inclure correctement.

pour IntelliSense vous pouvez essayer cette astuce:

<%if(true){%> 
    <script src="/js/jquery.js" type="text/javascript"></script> 
<%}%> 

Je ne suis pas en mesure de rappeler la source de cette astuce.

+0

je fais de même, un JavaScript et un dossier Css directement de la racine, puis utiliser un serveur URI par rapport au point à mon CSS/Fichiers JS. – Colin

+0

J'ai vérifié que le/js avant ne fait laisser le code à exécuter dans les deux dossiers (il est donc une meilleure solution que le ResolveUrl), mais il ne sera toujours pas me permettre de voir IntelliSense. L'astuce intellisense que vous avez listée ne fonctionne pas non plus. – shizbiz

+0

Je le reprends. Quand j'ajoute suivi par <%if(true){%> <%}%> Ensuite, cela fonctionne à la fois dans la racine et le sous-dossier, et intellisense fonctionne dans les deux endroits. Assez bon pour le moment. Je vous remercie. – shizbiz

1

Vous pouvez utiliser un gestionnaire de script pour inclure les fichiers JS:

<asp:ScriptManager runat="server"> 
    <Scripts> 
     <asp:ScriptReference Path="~/js/jquery.js" /> 
    </Scripts> 
</asp:ScriptManager> 
+0

Cela fonctionne pour les deux dossiers, mais ne me connecte pas à l'IntelliSense . – shizbiz

+0

astuce très utile, je l'ai vu ailleurs, mais je n'ai pas pu le trouver. +1 –

Questions connexes