Umbraco SurfaceController vs RenderMvcController

9

Was ist der Zweck und wann sollte ich einen SurfaceController vs RenderMvcController verwenden? Es scheint, dass ich mit einem SurfaceController wirklich nichts machen kann, was ich mit RenderMvcController nicht machen kann. Zum Beispiel denke ich speziell über die Handhabung der Formularübermittlung nach. Mit RenderMvcController kann ich tun:

%Vor%

Dies scheint mir MVC mehr zu entsprechen, insbesondere da ich Pakete wie UmbracoMapper verwenden kann, um den aktuellen Umbraco-Knoten einem Ansichtsmodell zuzuordnen und dieses an meinen View zu übergeben? Warum und wann sollte ich einen SurfaceController verwenden?

Wenn ich so geneigt war, konnte ich RenderMvcController verwenden, um jede Route für einen bestimmten Knoten zu übernehmen, was mir mehr Kontrolle über meine Anwendung gab, ein bisschen mehr wie eine reine ASP.NET MVC App. Ist das eine gute Sache?

    
Iain 16.12.2014, 23:12
quelle

2 Antworten

6

Aus der offiziellen Dokumentation:

Oberflächencontroller

  

Ein SurfaceController ist ein MVC-Controller, der mit dem   Front-End-Rendering einer UmbracoPage. Sie können zum Rendern verwendet werden   Child Action-Inhalt für die Verarbeitung von Formulardatenübermittlungen und für   Rendering Child Aktion Makros. SurfaceControllers werden automatisch weitergeleitet   Dies bedeutet, dass Sie für diese keine eigenen Routen hinzufügen / erstellen müssen   Controller zu arbeiten.

Quelle: Ссылка

Benutzerdefinierte Controller

  

Standardmäßig wird das gesamte Front-End-Routing über die. ausgeführt   Umbraco.Web.Mvc.RenderMvcController Index Aktion, die funktionieren sollte   gut für die meisten Leute. In einigen Fällen möchten die Menschen jedoch möglicherweise abgeschlossen   Kontrolle über diese Ausführung und möchte möglicherweise ihre eigene Aktion ausführen.   Einige Gründe dafür können sein: genau zu kontrollieren, wie Ansichten sind   gerenderte, benutzerdefinierte / granulare Sicherheit für bestimmte Seiten / Vorlagen oder zu   in der Lage sein, jeden benutzerdefinierten Code in dem Controller auszuführen, der den   Vorderes Ende. Die gute Nachricht ist, dass dies vollständig möglich ist. Dies   Prozess dreht sich alles um Konvention und es ist wirklich einfach!

Quelle: Ссылка

Hilft das? Sie haben Recht, ich denke, der einzige wirkliche Unterschied mit dem Surface-Controller ist das automatische Routing.

Simon

    
ProNotion 17.12.2014 13:24
quelle
0

Der Unterschied liegt hauptsächlich in der beabsichtigten Verwendung. Sie werden feststellen, dass einer in den meisten Fällen funktioniert.

Der Oberflächencontroller wird verwendet, wenn Sie einige Benutzerinteraktionen in dieser Ansicht haben. Wie die Einreichung von Formularen. Es enthält einige Hilfsmethoden für Weiterleitungen wie

%Vor%

RenderMvcController stellt eine Sicherheitseigenschaft vom Typ WebSecurity zur Verfügung, die in einigen Fällen hilfreich sein kann. Einige der Methoden sind

%Vor%     
Vinh C 05.04.2018 23:19
quelle

Tags und Links