À l'aide de code java script dans MVC5 - où le mettre
Im MVC5 application et dans la vue d'index.cshtml j'ai besoin d'utiliser
certains code java script ,actuellement j'ai mis le code de script à l'intérieur de la vue et sa fonctionne très bien.
Ma question est: où dois-je mettre ce code (à partir des meilleures pratiques) et comment devrait -
Je vous renvoie pour cela à partir de la vue?veuillez fournir un exemple.
OriginalL'auteur shopia T | 2014-04-06
Vous devez vous connecter pour publier un commentaire.
L'approche que j'ai écrit ci-dessous est ma façon de l'extraction de code JavaScript complètement à partir de votre point de vue.
En HTML5, utilisez le
data
attribut de transmettre des variables à partir de laModel
.Cette aide énormément dans le transfert des variables à partir de MVC (votre viewmodel) de javascript.
Cela vous permet également de conserver javaScript stockées dans des fichiers distincts que vous pourrez probablement dans un MVC environnement.
1.1 Liaison c# HTML
1.2 JS fonctions d'aide à convertir les données en objets littéraux
Bien que construit sur jQuery, j'ai écrit 2 petites fonctions qui peuvent aider portage querystring des variables dans les littéraux d'objet et à l'arrière. - Je les utiliser tout au long de mes fichiers js:
1.3 Convertir HTML en js objet littéraux
Avec ces fonctions à l'esprit que vous pouvez passer toute la chaîne de requête comme les variables dans un objet littéral.
1.4 Exemple: JS modulaire de l'installation d'étendre et de remplacer l'objet littéraux
Combiné avec du jQuery
$.extend()
fonction, vous pouvez maintenant remplacer les objets javascript dans une approche modulaire (en tenant compte de toutes les fermetures un fichier js/module ressemble à ça):1.5 de l'Initialisation d'un module js
2.1 Ajout de scripts/css à vos points de vue
Vous avez deux options pour la fixation des scripts pour vos points de vue/pages/blocs:
ClientResources
(pas la meilleure approche dans le MVC, mais reste faisable, vous permet d'inclure des fichiers externes dans une vue partielle -> afficher dans la vue)2.2.1 baselayout d'installation pour les sections
2.2.2 utilisation de la vue partielle
2.3.1 baselayout de configuration pour affichage dans la vue
2.3.2 utilisation de la vue en vue
2.4.1 BundleConfig d'installation pour les scripts
2.4.2 baselayout installation
Je suppose que vous n'êtes pas dans la vue partielle et ont fait un truc à inclure dans un sens comme dans l'autre vue partielle. MVC ne vous autorise pas à utiliser
section
. Le "hack", si on peut l'appeler ainsi, est d'utiliserClientResource
.Ajout de la troisième option pour la bundlesetup. C'est beaucoup de choses/la recherche dans une réponse donc j'espère que ça vous aide, vous et les autres ^^
OriginalL'auteur
Vous feriez mieux d'utiliser de Rasoir
@section
pour cela.Dans votre Mise en page:
De votre point de Vue:
Certains préfèrent placer
@RenderSection("Scripts")
juste avant la</body>
tag à la place.OriginalL'auteur
Si vous avez et HTML 5 de modèle il vraiment n'importe pas où vous placez le code JavaScript, Si vous haver un modèle XHTML vous devez mettre votre code à l'intérieur de la
<head></head>
balises.Maintenant avec les meilleures pratiques, pour l'instant, la meilleure pratique consiste à mettre tout votre code JS juste avant votre
</body>
balise de fermeture. De cette façon, vous vous assurez que vos éléments html les balises ont été d'analyser par le navigateur.Pour aller à un environnement de production, le mieux est de concaténer tous vos JS en un seul .fichier js et ensuite il rapetisser, de cette façon, vous avez un seul petit fichier js que le navigateur du client a besoin pour récupérer.
Rapetisser votre code
Le terme rapetisser en frontend code (css/js) est un processus où vous découpez tous vos espaces et les sauts de ligne, et aussi la portée de la fonction de variables d'obtenir le remplacer avec un nom plus court, habituellement seulement une voyelle.
quand minifiés sera remplacé à:
Dans
MVC4
il y a le Regroupement et la Minification du dispositif qui peut vous aider avec ceci. DansMVC5
je ne suis pas sûr.Pour En Savoir Plus: http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification
J'ai juste ajouté un Rapetisser exemple et un lien en bas pour le regroupement et la minification fonctionnalité asp.NET MVC. Veuillez consulter ce lien pour voir les meilleures pratiques recommandées par microsoft.
OriginalL'auteur