8
votes

Les webforms et MVC peuvent-ils vivre dans un seul projet?

Je préférerais faire du MVC alors que le développement régulier WebForms mange mon âme.

Cependant, j'ai reçu un projet WebForme assez important pour ajouter un tas de fonctionnalités.

existe-t-il de toute façon pour Webforms et ASP.NET MVC à coexister en un seul projet ou même à gérer conjointement le site Web? Je sais que je demande un hack.


0 commentaires

6 Réponses :


2
votes

Je ne l'ai pas fait - mais cela semble être possible selon ce poste de blog de Tchad MyER. C'est un peu vieux. http://www.chadmyers.com/blog/archive/2007/11/30/asp.net-webforms-and-mvc-in-the-same-project.aspx


1 commentaires

Oui, il a plus de 2 ans et fait avec un aperçu. Si quelqu'un pouvait confirmer si cela fonctionne avec 1,0 bits, ce serait génial.



0
votes

Si vous avez de la place pour un autre livre, je recommande vivement le livre de Steve Sanderson http://bit.ly/1w03tv (Je ne suis pas une taupe ... ça m'a juste aidé une tonne). Il a un chapitre à propos de «combiner MVC et WebForms».

J'ai pensé à résumer le processus ici, mais c'est un peu long. Donnez-vous un look si vous avez une chance.


0 commentaires

9
votes

Voici ...

  1. Assurez-vous que votre projet cible .NET 3.5
  2. ajoutez des références (et assurez-vous qu'ils copient sur local) les 3 ensembles de 3 ensembles pour MVC (System.Web.mvc, .abstractions, .ROUNT)
  3. Ajouter un global.asax Si vous n'en avez pas déjà un dans votre projet.
  4. aller à global.asax code derrière et ajoutez le code nécessaire pour le faire ressembler à un MVC Global.Asax (je ne vais pas le taper, créez simplement un nouveau projet MVC et regardez sur le global.asax et ajouter les choses que votre code global.aSax actuel fait défaut)
  5. Créez les dossiers de niveau supérieur pour "Contrôleurs" et "Vues"
  6. Créez des sous-dossiers de "Vues" pour vos contrôleurs correspondants (ex. Vues -> Accueil)
  7. Lorsque vous ajoutez .aspx Les fichiers à vous afficher des dossiers veillez à modifier la classe de base de System.Web.UI vers System.Web.ViewPage et supprimez les balises
  8. Démarrez un nouveau projet MVC vierge et trouvez une recherche pour "URLROUNTMODULE" dans le Web.config et ajoutez ces réfrations à votre webForms web.config dans les mêmes endroits
  9. Cochez la case System.Web -> Pages -> Nœud espaces de noms du nouveau projet MVC et ajoutez les spécifiques spécifiques MVC à votre WebForms web.config

    C'est une explication très approximative, mais vous avez demandé les notes de falaise. La morale de l'histoire est de suivre un nouveau projet MVC / vierge et d'ajouter les entrées nécessaires dans web.config, référencez les assemblages nécessaires et créez la structure de fichier correcte pour le motif MVC.


1 commentaires

Une autre chose est nécessaire pour le faire fonctionner. Voir la réponse acceptée à cette question: Stackoverflow.com/questions/1727309/...



0
votes

Maintenant, en 2011, nous avons .NET 4.0 et est assez facile à les combiner. Il suffit de commencer un nouveau projet MVC3, ajoutez un homécontrôleur et une vue (ie Accueil / index.cshtml), puis ajoutez un nouveau dossier, disons / admin, puis ajoutez un formulaire Web à l'intérieur comme /admin/default.aspx ... C'est là, exécutez-le, la page d'accueil utilisera MVC, la section admin utilisera des formulaires Web.


2 commentaires

J'ai essayé de créer un projet Clean MVC 3 .NET 4.0 et ajouté un dossier "FOO" et une page par défaut.aspx pour cela. J'ai couru en mode de débogage, puis navigué sur / foo et /foo/default.aspx et reçu "la ressource introuvable". Que manque-t-il d'autre?


Avez-vous un contrôleur et leur point de vue connexe pour le projet principal MVC? Le dossier FOO doit avoir uniquement les fichiers .aspx (et .aspx.cs), et ceux-ci doivent avoir été créés à partir d'un élément "Nouveau formulaire Web".



-1
votes

Aussi - Afin d'ajouter les menus contextuels, ajoutez le type de projet "MVC" ({E53F8FEA-eAE0-44A6-8774-FFD645390401}) au fichier de projet en tant que tel

<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{...};{...}</ProjectTypeGuids>


0 commentaires

1
votes

C'est ce que j'ai fait pour ajouter mvc5 strong> à un projet de formulaire Web existant

  1. Créer un nouveau projet ASP.NET MVC. Vous pouvez l'utiliser pour copier des informations sur votre projet existant. P> li>

  2. Dans votre projet existant, utilisez Nuget Strong> pour ajouter les références. Cela mettra également à jour votre web.config em> et ajoutera les fichiers jQuery em>. Copiez ceci dans votre Console em> p> li> ol> xxx pré>

    1. Copier Bundleconfig em>, routeconfig em>, filtreconfig em> et de tout autre que vous devez app_start strong> p > li>

    2. Ajoutez les lignes d'enregistrement à partir de Application_Start CODE> à global.asax strong>. Vous pouvez les obtenir de votre nouveau projet. p> li>

    3. ajoutez ces touches au code> de votre web.config em> p>

      <add key="webpages:Version" value="3.0.0.0" />
      <add key="webpages:Enabled" value="false" />
      <add key="PreserveLoginUrl" value="true" />
      <add key="ClientValidationEnabled" value="true" />
      <add key="UnobtrusiveJavaScriptEnabled" value="true" />
      
    4. Ajoutez une référence à la Microsoft.cshaarp em> Assembly P> Li>

    5. Ajoutez les vues em> et contrôleurs em> dossier p> li>

    6. Vous pouvez maintenant commencer à ajouter des vues et des contrôleurs comme vous le feriez dans n'importe quel projet MVC P> LI> ol> p>


0 commentaires