Wir haben eine laufende Lösung, die viele web forms
-Anwendungen mit derselben Masterseite enthält. Wir haben ein Klassenbibliotheksprojekt für die Masterseite und ihre Steuerelemente erstellt und es als dll
innerhalb jeder Webformularanwendung referenziert und die Masterseite programmatisch zugewiesen
Nun werden wir unserer Lösung zwei neue Anwendungen hinzufügen, aber wir haben beschlossen, ASP.Net MVC 3
für die Erstellung dieser neuen Anwendungen zu verwenden.
Das Problem ist, dass wir dieselbe Masterseite für die neuen Anwendungen verwenden müssen. Wie können wir also die Masterseite für unsere Ansichten mit Code festlegen?
Beachten Sie, dass unsere Masterseite ein Klassenbibliotheksprojekt ist.
Sehen Sie sich diese Artikel an, um einen Überblick über das Mischen von Webforms mit MVC zu erhalten:
Ein weiteres interessantes Projekt ist Zeus , wenn es um eine gemischte Webforms / MVC-Lösung geht. Es enthält Helfer zur Verwendung von HtmlHelper und UrlHelper auf Webformularseiten.
Wenn Sie wirklich die MVC-Route vorwärts bewegen möchten, sollten Sie wahrscheinlich etwas Zeit investieren, um Ihre Masterseite in ein Layout zu konvertieren. Alles andere wäre ein Hack / Workaround.
Amir, ich habe ein funktionierendes Beispiel in hier hochgeladen. Schritte,
1) Heruntergeladen und konvertiert eine Beispielanwendung von hier .
2) Fügen Sie in dieser Lösung eine MVC 3-Anwendung hinzu, und fügen Sie die Klassenbibliothek der obigen Lösung hinzu.
3) Geben Sie die MasterPage in der MVC-Ansicht an (entweder in der Ansicht MasterPageFile="~/MasterPageDir/MasterPage.master"
oder in der Controller-Rückgabe View("Index",masterName: MasterPageVirtualPathProvider.MasterPageFileLocation);
).
4) Setzen Sie diese Zeilen in global.asax.
%Vor%Tags und Links asp.net-mvc-3 .net webforms master-pages