2008-09-25 9 views

Répondre

8

Oui, vous pouvez faire en sorte que vos pages Webforms et les vues MVC soient mélangées dans un même projet d'application Web. Cela peut être utile si vous avez une application déjà créée et que vous voulez migrer votre application de webforms vers mvc.

Vous devez vous assurer qu'aucune de vos pages Webform ne se trouve dans le répertoire "Views" d'une application ASP.NET MVC standard. Pages (ou vues) dans le répertoire «Vues» ne peuvent pas être demandées directement via l'URL.

Si vous démarrez une application à partir de zéro, il y aurait très peu d'avantages à mélanger les deux.

4

Oui. MVC est juste une implémentation différente de l'interface IHttpHandler pour que les pages classiques ASP.NET et ASP.NET MVC puissent coexister dans la même application.

-1

Si vous mélangez MVC avec d'autres méthodes, vous n'en retirerez pas vraiment les avantages. Le but de MVC est de vous permettre de diminuer le couplage et d'augmenter la cohésion, et si seulement la moitié de votre code le fait, alors l'autre moitié va inévitablement restreindre votre cycle de développement. Donc, je suppose que même si c'est possible, je ne pense pas que cela en vaille la peine. Aller jusqu'au bout ou ne pas aller du tout.

+0

Cependant, il s'agit certainement d'utiliser le meilleur outil pour la tâche? Certaines parties du projet peuvent être mieux adaptées à MVC et certaines à WebForms ... – Rob

+0

Si vous pouvez découpler proprement les pièces MVC des pièces non-MVC, alors oui, vous pouvez l'essayer. Mais s'ils traitent tous les deux des mêmes structures de données ou présentent des parties de la même interface utilisateur, alors personnellement, je déconseille de le faire. –

0

Vous devez vous assurer que vos routes MVC ne sont pas en conflit avec vos pages Web Forms afin que les demandes pour une page .aspx ne sont pas acheminés à une action de commande comme paramètre etc.

Voir this blog post par Phil Haack pour plus de détails sur la façon d'éviter cela.

+0

lien cassé. S'il-vous-plaît, réparez. –

1

Comme vous avez probablement remarqué avec les réponses ci-dessus, oui c'est très possible de le faire. En fait, j'ai dû le faire sur mon projet actuel. J'ai pu obtenir l'approbation pour ajouter MVC à notre application, mais seulement dans la section administration (pour limiter le risque d'affecter les membres actuels venant sur notre site). Le plus gros problème que j'ai eu était de convertir mon site Web en une application Web, mais une fois que cela a été fait, les choses étaient assez simples en ajoutant MVC côte à côte à nos pages Web classiques derrière le code. L'astuce pour moi était de rendre mes pages MVC aussi similaires que possible à mes pages code-behind afin que la transition semble aussi transparente que possible.

1

Je travaille actuellement sur un nouveau projet. Bien que je veuille aller jusqu'au bout de la route MVC, certaines des exigences du projet ne me le permettent pas.

Une de ces exigences est d'avoir une grille de regroupement du côté client. Personnellement, vous avez choisi le Telerik Rad-Grid. Alors qu'ils peuvent être en train de soutenir MVC, ils ne sont pas encore là. Donc, cela signifie que je dois avoir une solution hybride. pour l'instant jusqu'à ce que RadGrid supporte pleinement MVC.
Alors que nous sommes dans cette période de transition, je pense qu'il y aura plus de projets hybrides jusqu'à ce que le support des Contrôles Tiers rattrape.

Cordialement

Nathan

0

Oui, il est très possible pour les pages MVC de coexister avec des formulaires web asp.net. J'ai implémenté cela dans mon application asp.net existante pour ajouter de nouvelles fonctionnalités. Nous devons nous assurer de référencer les DLL MVC, d'enregistrer les tables de routage pour le routage URL et de configurer les assemblys et les espaces de noms dans le fichier Web.config.

Questions connexes