J'ai des problèmes pour utiliser T4MVC VB avec Visual Studio 2010 Express Edition.T4MVC VB avec Visual Studio 2010 Édition Express
Je peux référencer les classes T4MVC dans mes contrôleurs, mais je ne peux pas y accéder dans mes vues (là où j'en ai réellement besoin).
Dans la vue, le code suivant est remplacé par intellisense comme si la classe MVC
est invalide.
MVC.Home.GameBoard
Il est remplacé par
Mvc.Home.GameBoard
qui génère le message d'erreur 'Home' is not a member of 'Mvc'
. Il semble que dans la vue, un espace de noms Mvc
masque la classe MVC
. Cela n'existe pas dans le contrôleur. Comment puis-je faire ce travail? Après avoir joué avec un peu plus, il semble que les classes ne sont pas disponibles dans la vue, peu importe leur nom. Qu'est-ce qui détermine les classes et espaces de noms disponibles dans la vue? Les classes continuent à être disponibles dans le contrôleur, indépendamment de la dénomination. Je présume qu'il doit y avoir un filtre ou une limite sur ce qui est disponible dans les vues?
Mise à jour: Je regardais juste this excellent video de Phil Haack, et ça m'a donné un indice.
J'ai besoin de modifier la section <pages>
dans le fichier web.config. Maintenant la question est, puis-je obtenir cela pour utiliser une classe qui n'est pas dans un espace de noms, comme la classe MVC est par défaut, sinon je vais devoir modifier le template T4 pour le mettre dans un espace de noms et l'inclure.
Avez-vous importé la classe T4Mvc dans votre vue? ou vérifiez que Views et and genrated T4mvc class est dans le même espace de noms? – swapneel
@swapneel comment l'importer dans la vue? Je ne vois pas d'instructions d'importation dans les autres vues. De plus, je ne pense pas pouvoir l'importer, car la classe MVC n'est pas générée dans un espace de noms. –
Vous avez raison - je l'ai juste tapé dans mon code de test. MVC.Home.GameBoard est un lien d'action n'est-ce pas? essayez MVC.Home.GameBoard() <%: Html.ActionLink ("Home", MVC.Home.Actions.Index())%> – swapneel