Dans Visual Studio 2012 avec MVC 4, le moyen facile (installer Paquet Nuget) vous donne une configuration incomplète, car le paquet Nuget est terriblement obsolète (dernière mise à jour en 2011 - peut-être le jour où il a été créé).
Vous devez utiliser l'équivalent de la réponse de Francis Shanahan, mais le chemin de copier choses est (64 bits):
C: \ Program Files (x86) \ Microsoft Visual Studio \ 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Web \ MVC 4 \ CodeTemplates
vous:
Ajouter une référence à Microsoft.Web.Infrastructure, que vous pouvez trouver dans les assemblées> Extensions.
Copier ce CodeTemplates dossier (y compris le dossier lui-même) à la racine de votre projet et de l'inclure dans le projet
Ignorer les erreurs du compilateur pour l'instant (comme ne peut pas trouver MvcTextTemplateHost)
Parcourez les propriétés de chacun des fichiers ajoutés et supprimez le texte dans la propriété "Outil personnalisé" de chacun. Lorsque vous ne l'étendre flèche à côté de chaque fichier disparaîtra (car le fichier ne sera plus généré en place)
Enregistrer tout et construire - les erreurs du compilateur disparu
Si les erreurs du compilateur don Ne partez pas - surtout si vous voyez une erreur dans un fichier .cs généré Visual Studio ne peut pas trouver, et un fichier .tt - fermez Visual Studio, effacez votre dossier temporaire, et rouvrez la solution. Dans un cas, je suis allé jusqu'à redémarrer avant que le problème ne se clarifie. Il a été provoqué par un fichier .cs généré à partir d'un modèle .tt que Visual Studio essayait toujours de générer automatiquement le code pour.
En outre, les noms des fichiers .tt sont un peu confus - voici comment carte:
GUI:
contrôleur vide MVC
contrôleur MVC avec lecture/écriture des actions et des vues, en utilisant le contrôleur MVC Entity Framework
avec lecture vide/écriture actions
contrôleur API vide
contrôleur API avec lecture/écriture des actions, en utilisant Entity Framework
contrôleur API avec lecture vide/écriture actions
CodeTemplates \ fichiers de addController carte respectivement:
Controller.tt
ControllerWithContext.tt
Controller.tt
ApiController.tt
ApiControllerWithContext.tt
ApiController.tt
Il y a un if déclaration dans Controller.tt et ApiController.tt qui gère la fonctionnalité avec/sans les actions de lecture/écriture. Pour les vues, le nommage est intuitif sauf que List.tt crée Index.cshtml et Empty.tt est utilisé pour toutes les vues en plus de Créer/Supprimer/Détails/Éditer/Index.
This question covers what properties you can use in the .tt templates.
Les modèles .tt sont des modèles Microsoft T4. T4 Template Syntax.
Bien sûr, depuis sa sortie, le nombre de personnes pouvant répondre à cette question est limité à peu près à Scott Guthrie et Phil Haack. – Will
ou @Darin Dimitrov;) – jfar
C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Web \ MVC 3 \ CodeTemplates \ AddController – davethecoder