Oberflächen-Controller oder Custom-Controller in Umbraco 7?
Geschichte
Ich bin ein Web Forms-Entwickler mit einigen .NET MVC Erfahrung, neues zu Umbraco und lernen, wie ich gehen.
Bisher habe ich die Umbraco-Dokumentation und videos einrichten, was bedeutet, dass alle meine Controller Erben von einem "Controller-Basis" mit gemeinsamen Funktionen enthalten, die in sich selbst erbt von SurfaceController.
Kürzlich jedoch, ich bemerkt haben, einige Blogger und externe Referenz material Referenzierung RenderMvcController in der Basisklasse statt SurfaceController - jetzt die Umbraco-Dokumentation ist unklar, auf die wirklichen Unterschiede zwischen den beiden, noch, in welchen Situationen Sie sollten Sie verwenden.
Die Frage
Gibt es eine klare und deutliche Unterschied zwischen der vorgestellten Einsatzszenarien für ein Surface Controller - Erben von Umbraco.Web.Mvc.SurfaceController, und eine Benutzerdefinierte Controller - Erben von Umbraco.Web.Mvc.RenderMvcController?
Dank!
InformationsquelleAutor Chris Wilson | 2014-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Dokumentation für die
SurfaceController
ist hier: http://our.umbraco.org/documentation/Reference/Templating/Mvc/surface-controllersIn einer nussschale, die
SurfaceController
helfen, um die Interaktion mit Aussicht. So zum Beispiel könnten Sie schreiben ein Formular, das auf einer Oberfläche-controller. Oder Sie schreiben könnten, ein Kind zu handeln zu einer Ansicht mit einerSurfaceController
RenderMvcController
ist rein verwendet für das routing auf den veröffentlichten Seiten. So könnte man sub-KlasseRenderMvcController
um zu 'entführen', um Anfragen veröffentlicht-Seiten von einem bestimmten Dokument-Typ. Hier sehen http://our.umbraco.org/documentation/Reference/Templating/Mvc/custom-controllers.SurfaceController
ist in der Regel auch verwendet, um freizulegen, APIs, nutzen Sie Umbraco content.Ja, es kann werden, aber nicht sein sollte, da es
UmbracoApiController
für diese Zwecke. Die zwei Hauptziele der Oberfläche-Controller sind Formular-Interaktion und Kind-Aktionen.InformationsquelleAutor Digbyswift
Zur weiteren Klärung basiert auf Digbyswift Antwort:
SurfaceController
= APIs oder form Ziele (die dann redirect)RenderMvcController
= eigene Logik, ein Modell zu bauen oder wählen Sie eine Ansicht für ein content-Element (auf der Basis von Dokumenttyp und Optional template)UmbracoApiController
speziell für diesen Zweck. Diese Methode hat weniger overhead als mit der SurfaceController. Auch Mit surface Controller Klumpen alle Ihre API-code, mit MVC-spezifische form Handhabung und Kind Aktion-code, was ich persönlich denke ist nicht so toll. Separates routing können auch dann definiert werden, für die API zu.Gute Entscheidung, @Digbyswift!
InformationsquelleAutor Richard Szalay