2010-11-16 7 views
1

Je veux inclure le code dans un fichier javascript à l'intérieur de ma page Asp.net MVC (la vue est un résultat javascript comme décrit here) Je veux faire cela pour des raisons de consolidation pour mon javascript, pour réduire les frais de chargement de mon interface graphique complexe pour mon RIA, pour rendre la compression plus efficace et pour faciliter le débogagePouvez-vous ouvrir une vue dans asp.net MVC qui n'a pas l'extension du moteur de vue?

Le problème est que j'utilise le concepteur Ext pour créer mon interface utilisateur graphique Chaque fois que mon projet est exporté, il crée 2 fichiers .js Donc, mon idée de consolider (au moment de l'exécution) tous les fichiers javascript en un était d'avoir ma principale vue JavaScriptViewResult rasoir. ontain Html.RenderPartial() affiche les appels aux fichiers .js.

Cependant, si j'appelle Html.RenderPartial("GUI/BaseLayout.js"), j'obtiens une exception car il essaie de trouver "GUI/BaseLayout.js.cshtml".

Existe-t-il un moyen de forcer Asp.net MVC à ne pas ajouter l'extension du moteur de vue à l'appel RenderPartial ou existe-t-il un meilleur moyen de concaténer tous mes fichiers .js en un fichier script sorti?

Répondre

3

Vous pouvez essayer d'écrire votre propre méthode d'extension pour HtmlHelper qui lit dans les fichiers .js et les concatène. Mais faire cela par demande peut être un peu coûteux.

Un deuxième choix consiste à utiliser un outil comme Chripy (chirpy.codeplex.com). C'est un add-on Visual Studio (pas un plugin, donc ça devrait marcher avec les éditions Express). Il est principalement destiné à la compilation de fichiers .less, mais il peut en faire beaucoup plus. Vous pouvez par exemple créer un fichier .chirp.config qui ressemble à ceci:

<?xml version="1.0"?> 
<root>   
    <FileGroup Name="main.scripts.js"> 
     <Folder Path="/" Type="*.min.js" Minify="false"/> 
     <File Path="MicrosoftAjax.js" /> 
    </FileGroup> 
</root> 

Si vous mettez maintenant dans ce dossier Scripts il trouvera tous les fichiers et .min.js fichier MicrosoftAjax.js et les ajouter ensemble dans le fichier main.scripts.js. Vous devrez probablement rendre le traitement un peu plus complexe de tous vos fichiers .js, mais au moins ils seront précompilés.

+0

C'est vraiment génial, et ça marchera parfaitement pour mes besoins! Merci! – KallDrexx