@Html.Sitecore().ViewRendering("Path to the View")
mvc.renderRendering Pipeline ausgelöst wird. Und Ihre Ansicht wird fast auf die gleiche Weise gerendert, wenn Sie sie zum Platzhalter hinzufügen. Der Unterschied zu Html.Partial liegt im Bearbeitungszyklus Ihrer Ansicht. Das gerenderte Ergebnis kann unterschiedlich sein, wenn Sie auf etwas in dieser Pipeline angewiesen sind (z. B. Caching wie @Gatogordo). (oder wenn Sie selbst einen Prozessor hinzugefügt haben). Wenn Sie möchten, machen die gleiche sein, wenn man sie dann Html.Sitecore verwenden über Platzhalter() hinzufügen. ViewRendering
Für
@Html.Sitecore().Controller("Controller Name", "Controller Action")
und
@Html.Action("Controller Name", "Controller Action")
Unterschied ist auch in Es ist der Ausführungszyklus. Sitecore Einsen wird über ControllerRunner ausgeführt, das Controller von SitecoreControllerFactory erhält und einige Aktion ausführen. ASP.Net MVC Aktion wird über HttpContext.Server.Execute ausgeführt und tatsächlich das gleiche. Aber wenn ich auf die Implementierung schaue, kann ich eine der Unterschiede im Routing vermuten. Im Fall der Verwendung von ASP.Net MVC-Helper können Ihre Routenwerte Sie zu einem bestimmten Sitecore-Element bringen, anstatt die erforderliche Controller-Aktion, wenn sie übereinstimmen. Der Sitecore-Helfer führt immer den Controller aus.
Wenn Sie weitere Details benötigen, können Sie System.Web.Mvc.Html.ChildActionExtensions.Action und Sitecore.Mvc.Helpers.SitecoreHelper.Controller im Reflektor öffnen und sie Schritt für Schritt vergleichen.
Danke, gute Erklärungen – gill23