7

Ich arbeite derzeit an MVC 2 mit Visual Studio 2010 und sehen Motor als ASPX Art von Projekt.Convert MVC 2 ASPX in MVC 4 Razor View Engine

Also habe ich mich entschieden, mit Visual Studio 2012 mit MVC 4 zu bewegen und die Engine als Razor anzuzeigen.

So könnte ich obige Aufgabe erreichen. Wenn ja Wie?

Ich würde gerne Ihre Erfahrung für ähnliche Situation hören.

Hinweis: Mein Projekt ist ein großer.

+3

Wir konvertierten stackoverflow von MVC/aspx zu MVC/cshtml - es war nicht viel anders als "einige Referenzen hinzufügen, ein neues Standardlayout schreiben (um die Masterseite zu ersetzen), .cshtml-Dateien hinzufügen. aspx ". An den meisten Stellen habe ich die ASPX in .cshtml umbenannt und dann alle Probleme behoben (ich habe eine globale Suche nach '<%' or '%>' in .cshtml Dateien durchgeführt. Es * hat einfach funktioniert *. Ich denke, wir haben die messerscharfen Teile davon kopiert die Konfigurationsdatei, indem Sie einfach ein neues Rasiererprojekt erstellen und sich ansehen, was anders war –

+0

@MarcGravell Könnten Sie etwas mehr über "schreiben Sie ein neues Standardlayout (um die Masterseite zu ersetzen)"? – Sampath

+2

haben Sie normalerweise einen '_ViewStart. cshtml ', das das' Layout' einer cshtml-Version Ihrer alten Master-Seite zuweist, zB '_ViewStart.cshtml' enthält' Layout = "~/Views/Master.cshtml"; ', wo das' ~/Views/Master.cshtml' ist die konvertierte Standard-Seitenvorlage –

Antwort

5

Erstellen Sie in Visual Studio 2012 ein neues MVC4-Projekt, und fügen Sie der neuen Lösung nacheinander Quelldateien aus Ihrer alten Lösung hinzu. Der Wechsel von MVC3 zu MVC4 ist einfacher mit einer neuen Lösung, ich muss mir vorstellen, dass der Übergang von 2 -> 4 noch komplexer ist, wenn man versucht, ein Upgrade vor Ort durchzuführen.

Die Konvertierung von ASPX zu Razor sollte wahrscheinlich manuell erfolgen. Obwohl es Konverter gibt (wie this one oder Code wie die angenommene Antwort in this SO question), würde ich persönlich meiner Anwendung auf reine Automatisierung nicht vertrauen.

Auch würde ich wahrscheinlich eins nach dem anderen konvertieren. Mit anderen Worten, konvertieren Sie zuerst von ASPX -> Razor oder MVC2 -> MVC4 und stellen Sie sicher, dass alles mit Ihrer Konvertierung funktioniert. Dann wandeln Sie das andere um, damit Sie bei Problemen nicht herausfinden müssen, ob das Versions-Upgrade oder das Syntax-Upgrade Ihr Problem verursacht hat.

+0

Könnten Sie etwas mehr über "Umwandlung von ASPX zu Razor muss manuell getan werden." ? – Sampath

+0

Ich meine, Sie müssen jede Datei von einer ASPX-Erweiterung in eine CSHTML-Erweiterung konvertieren und dann das Markup in der Datei manuell von ASPX-Syntax in Razor-Syntax ändern. – Scott

+0

@Sampath Derzeit haben Sie einen ganzen Stapel von ASPX-Dateien; aspx und cshtml haben unterschiedliche Syntax (für die Bits, die nicht nur HTML-Markup sind). Also: jemand (aka "Sie") muss durchgehen und den Code * in jeder Ansicht ändern –