Quantcast
Channel: Blog de Julien Corioland (MVP) - .NET 4.0
Viewing all articles
Browse latest Browse all 5

[ASP.NET MVC] Surcharger les templates de génération de vues

$
0
0

Le framework ASP.NET MVC 2 fournit un ensemble d’outils qui permettent de générer des vues fortements typées au travers d’un assistant dans Visual Studio.

En effet, pour créer une vue facilement, il suffit de faire un clic droit sur l’un de vos dossiers de vues (ou directement sur une méthode d’un controlleur) et de cliquer sur “Add View…” :

MvcTemplates01

Dès lors, un assistant vous permet de choisir le type de vue que vous souhaitez créer : typée ou non typée, dans le premier cas de l’associer à un type de modèle donné et également de préciser l’opération que vous souhaitez gérer via cette vue (ajouter un élément, l’éditer, voir son détail, voir une liste d’éléments…) :

image

Dans ce cas, nous crééons une vue fortement typé lié au type “BookModel” permettant d’ajouter un enregistrement. Voilà globalement le markup obtenu après génération :

MvcTemplates03

L’outil asp.net mvc met en place la structure de la page en faisant appel au helper html, afin d’afficher les différents champs etc…

Les différents templates proposés par cet assistant sont en fait gouvernés par des templates de code T4 (fichiers .tt) qui facilitent la génération de code. Ces templates sont très facilement surchargeables, à deux niveaux :

=> pour tous vos projets

=> pour chaque projet individuellement (conseillé)

Les templates sont disponibles dans le répertoire C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 2\CodeTemplates :

MvcTemplates04

Vous retrouvez en effet deux dossiers : AddController dans lequel on retrouve le template permettant la génération d’un controlleur capable de réaliser les opération CRUD classiques, ainsi qu’un dossier AddView contenant les templates permettant de générer les différents types de vue :

MvcTemplates05

Si vous souhaitez surcharger ces templates pour tous vos projets, éditez directement ces fichiers, sinon lisez la suite :)

En effet, les outils MVC ont été pensés pour pouvoir surcharger ces templates. Pour se faire, il vous suffit de copier / coller le dossier CodeTemplates et son contenu à la racine de votre projet ASP.NET MVC 2 :

MvcTemplates06

NB : lors de l’ajout, un message de sécurité devrais s’afficher. Cliquez sur Cancel pour ne pas générer les fichiers :

image

Les templates T4 utilisent ce que l’on appel un “Custom Tool” pour générer le code associé au template. Pour MVC, il s’agit du “TextTemplatingFileGenerator”. Comme vous n’êtes pas dans le contexte de l’outil MVC, vous ne pouvez pas l’utiliser tel quel, il vous faut passer par l’interface de création d’une interface.

Pour éviter toute erreur de compilation, sélectionnez tous les fichiers .tt dans l’explorateur de solution et affichez leurs propriétés. Supprimez la valeur “TextTemplatingFileGenerator” dans la section “Custom Tool” :

MvcTemplates08

Une fois supprimez, vous pouvez librement éditer les templates. Par exemple, vous pourriez avoir envie de modifier la balise “h2” affichant le titre de la page pour la remplacer par un div :

MvcTemplates09

NB : Il s’agit ici d’un cas ultra simple. Bien entendu, vous pourriez y ajouter tout type de code qui vous serait utile dans toutes vos pages.

Ici nous avons modifié le template de page “Create”. Dès lors, si nous utilisons l’assistant pour créer une vue de ce type, notre modification doit apparaître et ce sur toutes les pages utilisant le template !

MvcTemplates10

Bref, encore un point d’extensibilité simple et très pratique offert par MVC… :)

Bonne customization ;)


Viewing all articles
Browse latest Browse all 5

Trending Articles


EASY COME, EASY GO


UPDATE SC IDOL: TWO BECOME ONE


Pokemon para colorear


Sapos para colorear


tagalog love Quotes – Tiwala Quotes


OFW quotes : Pinoy Tagalog Quotes


Tropa Quotes


“Mali man na ikaw ay ibigin ko, akoy iibig padin sayo”


RE: Mutton Pies (frankie241)


Vimeo 10.7.0 by Vimeo.com, Inc.


FORECLOSURE OF REAL ESTATE MORTGAGE


HOY PANGIT, MAGBAYAD KA!


Girasoles para colorear


Presence Quotes – Positive Quotes


Love Quotes Tagalog


Long Distance Relationship Tagalog Love Quotes


“BAHAY KUBO HUGOT”


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


Vimeo 10.7.1 by Vimeo.com, Inc.