2012-03-29 2 views
1

J'ai hérité d'un projet MVC3 qui a un grand nombre de vues ASPX que je voudrais convertir en Razor. Cette question =>Aspx to Razor syntax converter? est similaire à la mienne, et cela m'a aidé à trouver un tas d'options pour convertir les vues elles-mêmes, mais je ne suis pas clair sur les étapes que je dois prendre en plus de convertir les vues.Quelles sont les étapes pour convertir le moteur de vue pour un projet MVC de .ASPX à Razor?

La première limitation connue de Telerik's razor-converter est "L'outil ne fonctionne qu'avec des vues et ne gère pas la structure du projet et les pages maîtres". Ce tool prétend être capable de convertir aussi des pages maîtres, mais il ne semble pas que quelqu'un d'autre que le développeur l'ait jamais utilisé.

Je pense que ce sont les étapes que je dois prendre: (comment ce que je fais)

  1. Utilisez un utilitaire pour convertir les vues
  2. Convertir les pages maîtres manuellement
  3. Modifier le projet structure (ce qui doit être modifié?)
  4. Supprimer les fichiers ASPX
  5. Testez l'application (tout gotchas spécifique je devrais surveiller?)

Est-ce la bonne solution? Pouvez-vous m'aider avec mes questions sur les étapes 2 et 3?

+1

"mais il ne semble pas que quelqu'un d'autre que le développeur l'ait jamais utilisé" - je ne voudrais pas que cela vous dérange trop. C'est une conversion unique; si ça marche, super. Si ce n'est pas le cas, vous n'avez pas beaucoup perdu; vous aurez juste besoin de convertir manuellement les pages maîtres de toute façon. –

Répondre

3

J'ai seulement essayé ceci sur une solution et la conversion réelle a fait un assez bon travail. J'ai téléchargé le projet de conversion Telerik, compilé, puis converti mes projets en utilisant ces lignes de commande:

aspx2razor C:\Development\MyProject\MyWebProject\*.ascx C:\Development\MyProject\MyWebProject -r 
aspx2razor C:\Development\MyProject\MyWebProject\*.aspx C:\Development\MyProject\MyWebProject -r 
aspx2razor C:\Development\MyProject\MyWebProject\*.master C:\Development\MyProject\MyWebProject -r 

Je ne devais revenir à ajouter un @include pour un espace de noms ici et là, et d'ajouter quelques parenthèses pour forcer le moteur de vue Razor à reconnaître correctement mon code en ligne. C'était aussi une solution assez simple, donc YMMV. Mais même s'il a réussi à convertir de 80 à 90% de vos vues, c'est beaucoup moins de travail manuel que vous devrez effectuer vous-même. De là, vous pouvez également créer un fichier _ViewStart.cshtml et effectuer quelques ajustements mineurs pour tirer parti des fonctionnalités de mise en page spécifiques à Razor. (Consultez le post de Scott Gu dessus ici: http://weblogs.asp.net/scottgu/archive/2010/10/22/asp-net-mvc-3-layouts.aspx)

Le gros problème que j'avais était d'essayer de réconcilier les changements de fichiers avec le contrôle de la source. Depuis le moteur de vue MVC classique utilise .aspx, .ascx, et .master extensions, j'ai dû ajouter manuellement les fichiers .cshtml à mon projet Web MVC et le contrôle de la source, puis supprimer les anciennes versions. Ce n'était pas difficile, juste du temps. En outre, vous devrez peut-être ajouter toutes les entrées web.config nécessaires pour prendre en charge le moteur de vue Razor si votre projet a été créé avec MVC 1 ou 2. Les projets créés avec MVC 3 doivent déjà avoir ces entrées en place, même s'il n'a pas été créé à l'origine en tant que site Razor.

+0

>> J'ai dû ajouter manuellement les fichiers .cshtml - Vous ne pouvez pas renommer les fichiers .as * ,. master en .cshtml? – RickAndMSFT

Questions connexes