2010-11-11 7 views
17

Visual Studio offre la fonction Intellisense JavaScript. Il est assez intelligent pour voir que vous faites référence à des fichiers JavaScript dans vos pages maîtres (par exemple, le fichier jQuery), puis offre l'achèvement des instructions dans n'importe quelle vue de l'application. Cependant, cela ne semble pas fonctionner avec Razor. Y a-t-il un moyen de faire fonctionner ça avec Razor? ASPX moteur vue offre cette astuce par exemple: <% /* %><script src="~/Scripts/jquery-1.4.1-vsdoc.js"></script><% */ %>Référence aux fichiers JavaScript dans les vues Razor pour obtenir du code JavaScript Intellisense

Répondre

27

Vous devriez être en mesure de faire quelque chose comme ceci:

@if (false) { 
<script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> 
} 

De cette façon, le code ne fonctionnera jamais lors de l'exécution d'applications, mais VS ne sais à propos du if (false), il va donc analyser la balise <script> et autoriser Intellisense à en tenir compte. Le problème avec l'utilisation de commentaires Razor dans les fichiers Razor est que VS les reconnaîtra et ignorera complètement tout ce qu'ils contiennent. Par exemple, cela ne fonctionnera pas:

@* <script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> *@ 
+0

Pas la plus propre solution de contournement, mais probablement le mieux que nous pouvons avoir pour le moment. Merci! – Konstantin

+0

la méthode ci-dessus aboutit à beaucoup de "Code inaccessible d'avertissement détecté" lors de l'utilisation de la propriété true dans le fichier csproj. – JJS

8

Pour éviter les avertissements du compilateur sur le code inaccessible, vous pouvez encore envelopper cela avec un pragma:

@{ #pragma warning disable } 
@if (false) 
{ 
    <script src="/Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> 
} 
@{ #pragma warning restore } 
Questions connexes