Ich habe die Schritte von http://memoryleak.me.uk/2009/04/umbraco-and-aspnet-mvc.html befolgt und MVC mit Erfolg in Umbraco integriert, aber ich habe immer noch ein Problem, das für mich kritisch ist.
Gibt es eine Möglichkeit, die von Umbraco definierten Vorlagen in einer MVC-Ansicht zu erben? Soweit ich weiß, besteht das Problem darin, dass die Umbraco-Vorlagen nur zur Laufzeit zu HTML werden und die doctype-Eigenschaften als @nodeName
nicht erkannt werden und aus diesem Grund die Ausnahme "Objektnullreferenz" ausgelöst wird.
Vielen Dank!
c#
asp.net-mvc
umbraco
umbraco4
Lucian Podereu
quelle
quelle
Antworten:
Diese Frage ist sehr alt und für die aktuellen Versionen von Umbraco nicht relevant.
Nur für den Fall, dass es noch niemandem bewusst ist - Alle Versionen von Umbraco seit 2013 (6, 7 und jetzt 8) unterstützen MVC
quelle
Nach einem Blick auf den Blog-Beitrag scheint dies nicht wirklich in Umbraco integriert zu sein, sondern arbeitet mit Umbraco zusammen.
Insofern ist es effektiv sein eigener HttpHandler. Dies bedeutet, dass der Umbraco Httphandler und eine ganze Reihe von Umbraco-Funktionen in Bezug auf Vorlagen und das CMS selbst umgangen werden.
MVC dazu zu bringen, Umbraco-Vorlagen zu verwenden, ist (wahrscheinlich) ohne Änderungen an der Kernanwendung (in Version 4+) nicht möglich. Dies bedeutet jedoch nicht, dass Sie MVC nicht neben Umbraco verwenden können, da Umbraco als Inhaltsrepository für eine MVC-Anwendung fungiert.
Sie können problemlos MVC-Controller erstellen, die Daten aus Umbraco abrufen und diese Ihren Ansichten zur Verfügung stellen. Zum Beispiel könnten Sie Umbraco Linq2Umbraco dafür verwenden.
Wenn Sie mehr Details zu den genauen Fehlern angeben, die Sie erhalten, und genau das, was Sie erreichen möchten, liegt die Lösung möglicherweise darin, wie Sie Ihre Anwendung strukturieren, anstatt zu versuchen, Umbraco 4+ brutal zu zwingen, etwas zu tun, das nativ ist in Umbraco 5 (dessen Veröffentlichung für dieses Jahr geplant ist). Der Quellcode für 5 befindet sich auf Codeplex und ist möglicherweise ein guter Ort, um zu sehen, wie das Umbraco-Kernteam dies angeht .
Hier gibt es eine alte Diskussion darüber: http://forum.umbraco.org/yaf_postst5106_Using-ASPNET-MVC-with-Umbraco.aspx
und in jüngerer Zeit hier: http://our.umbraco.org/forum/getting-started/installing-umbraco/2668-Use-Umbraco-with-aspnet-MVC
Weitere Informationen finden Sie hier: http://our.umbraco.org/forum/developers/extending-umbraco/17523-Umbraco-461-and-MVC-3
und noch mehr hier: http://our.umbraco.org/forum/developers/extending-umbraco/6837-Umbraco-Website-And-MVC-Website-In-ONE
quelle
Anstatt zu versuchen, die Umbraco-Steuerelemente zu verwenden, sollten Sie einige HtmlHelper-Erweiterungsmethoden schreiben , die die umbraco.NodeFactory.Node- Klasse verwenden, um den Inhalt abzurufen , den Sie in Ihren Ansichten anzeigen möchten . Schreibmethoden, die nachahmen (oder je nach Ihren Anforderungen vereinfachen)
umbraco.presentation.templateControls.Item
undumbraco.presentation.templateControls.Macro
möglicherweise für Sie ausreichen.BEARBEITEN
Ich bin diesen Weg mit einigem Erfolg gegangen. Ich habe mir auch die MVC-Quelle angesehen, um herauszufinden, wie Teilansichten zur zugrunde liegenden Sammlung von Webformular-Steuerelementen hinzugefügt wurden. Am Ende habe ich eine Klasse geschrieben, die von der
umbraco.presentation.templateControls.Macro
Klasse erbt, die der Klasse sehr ähnlich siehtSystem.Web.Mvc.ViewUserControl
.quelle