210 votes

Où et comment est lié au fichier de mise en _ViewStart.cshtml ?

Voici le About.cshtml du modèle MVC 3 par défaut :

Je m’attends que trouverait une référence au fichier _ViewStart dans le About.cshtml, mais ce n’est clairement pas.

J’ai regardé dans global.asax et web.config, mais je ne peux pas savoir comment le fichier About.cshtml est « lié » avec la mise en page du fichier _ViewStart.

Tout fonctionne comme prévu, je voudrais juste savoir ce qui se passe sous le capot...

249voto

jim tollan Points 12995

Kman,

De scottgu du blog (réf.: http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx):

En commençant par le ASP.NET MVC 3, la version Bêta, vous pouvez maintenant ajouter un fichier appelé _ViewStart.cshtml (ou _ViewStart.vbhtml pour VB) en dessous de la \dossier Vues de votre projet:

Le _ViewStart fichier peut être utilisé pour définir un point de vue commun de code que vous voulez exécuter à chaque démarrage de Vue du rendu. Par exemple, nous pourrions écrire de code au sein de notre _ViewStart.cshtml fichier de programmation pour définir la propriété de Présentation pour chaque Vue à la SiteLayout.cshtml de fichier par défaut:

Parce que ce code s'exécute à chaque démarrage de Vue, nous n'avons plus besoin de définir explicitement la Mise en page dans l'un de nos fichiers de vue (sauf si l'on voulait remplacer la valeur par défaut ci-dessus).

Important: en Raison de la _ViewStart.cshtml nous permet d'écrire du code, nous pouvons éventuellement faire de notre sélection de Disposition logique plus riche qu'un simple jeu de propriétés. Par exemple: on peut varier le modèle de Mise en page que nous utilisons en fonction de ce type de dispositif est de l'accès au site et à avoir un téléphone ou une tablette structure optimisée pour les périphériques, et un bureau de mise en forme optimisée pour les Ordinateurs/ordinateurs Portables. Ou si nous avons été la construction d'un système du CMS ou de partage commun d'application qui est utilisé par plusieurs clients, nous avons pu sélectionner différentes mises en page à utiliser en fonction du client (ou de leur rôle) lors de l'accès au site.

Cela permet à beaucoup de la flexibilité de l'INTERFACE utilisateur. Il permet également de vous plus facilement écrire la logique de vue une fois, et d'éviter de répéter dans de multiples endroits.

[modifier] voir aussi:

http://weblogs.asp.net/gunnarpeipman/archive/2010/10/10/asp-net-mvc-3-beta-view-start-files-for-razor-view-engine.aspx

37voto

rism Points 2864

Dans un sens plus général, cette capacité de framework MVC pour "savoir" à propos de _Viewstart.cshtml est appelé "Codage par convention".

Convention over configuration (aussi connu comme le codage par convention) est un logiciel de conception de paradigme qui vise à diminuer le nombre de les décisions que les développeurs doivent faire, soit gagner de la simplicité, mais pas forcément perdre de la souplesse. La phrase signifie essentiellement un développeur ne doit spécifier les aspects non conventionnels de l' application. Par exemple, si une classe a la Vente dans le modèle, la table correspondante dans la base de données est appelée "vente" par défaut. Il est que si l'on s'écarte de cette convention, tels que l'appel de la tableau "products_sold", que l'on a besoin d'écrire du code à l'égard de ces des noms.

Wikipédia

Il n'y a pas de magie. C'est juste écrit dans le noyau de la base de code du framework MVC et est donc quelque chose qui MVC "connaît". C'est pourquoi vous ne le trouvez pas dans le .les fichiers de configuration ou d'ailleurs; c'est en fait dans le MVC code. Vous pouvez cependant remplacer pour modifier ou nulle de ces conventions.

24voto

user2515392 Points 81

Juste une autre pensée.

Si vous voulez avoir votre propre `` fichier comme un modèle, vous pouvez faire de cette façon

Au sein de votre vous pouvez mentionner votre bon fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X