Umbraco 7 zu verwenden wenn @Umbraco vs @CurrentPage vs @Modell Razor-Ansichten?
Wie der Titel schon sagt, Wann sollte ich @Umbraco
, @CurrentPage
oder @Model
im Razor-Ansichten, Eigenschaften aus einem Knoten.
@Model.Content.GetPropertyValue()
gibt eine stark typisierte Objekt, in der Erwägung, dass @CurrentPage
gibt ein dynamisches Objekt. Jedoch, mit @Umbraco
ich kann eine dynamische (@Umbraco.Content()
) oder ein stark typisiertes Objekt (@Umbraco.TypedContent()
).
Kann @Umbraco
Helfer tun alles, dass @CurrentPage
und @Model
tun kann? Wann sollte ich mit welcher, und warum?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie beantwortet die meisten deiner Frage selbst.
@Model
und@CurrentPage
sind die gleichen, außer@CurrentPage
ist dynamisch. Beide geben die aktuelle Seite. Das bedeutet, dass, wenn Sie interit dein Blick vonUmbracoViewPage
können Sie nicht mit@CurrentPage
denn dies ist nur verfügbar auf derUmbracoViewTemplate
. Ich persönlich mag@Model
mehr als@CurrentPage
, aber es ist eine persönliche Wahl@Umbraco
ist ein völlig anderes Tier. Es nicht wieder auf die aktuelle Seite, aber es hat eine Reihe von Methoden, um andere Inhalte, Medien und Mitglieder in unterschiedlicher Weise (z.B. xpath). Aber auch das templating und misc Methoden wie:Mehr wissen über die @Umbraco, besuchen Sie die Umbraco Helfer, Dokumentation
E. g. Wenn Sie eine Bild-ID aus den aktuellen Knoten mit
dann könnten Sie
@Umbraco.TypedMedia(imgId)
um das image IPublishedContent Objekt.Update:
Neben @Umbraco.Feld("propertyAlias"), einer von der Vorlage Helfer, können Sie auch @Umbraco.Feld( x, "propertyAlias"), wo x eine IPublishedContent. Dies wird immer wieder ein IHtmlString, die es unpraktisch für die anderen Programmieraufwand, aber macht das Umbraco.Feld (), ein sehr schönes helper-Methode zum zurückgeben von Eigenschaften.
Update 2:
Ab der version 7.4 gibt Es ein modelBuilder, die Ihnen erlaubt zu definieren
UmbracoTemplatePage<ContentModels.HomePage>
und verwenden@Model.Content.BodyText
später auf. Ausgehend von Umbraco v8 (auf der roadmap), Unterstützung für Dynamik (CurrentPage
aufUmbracoTemplatePage
) wird gesagt, gelöscht werden. So bereiten Sie mithilfeModelsBuilder
undUmbracoViewPage<MyModel>
.Update 3:
Ab der version 8, es wird nur ein
UmbracoViewPage
. Das bedeutet, dassCurrentPage
wird nicht mehr angeboten. Versuchen den "Modellen builder" - Ansatz, um die Zukunftssicherheit oder Lesen Sie den ersten v8-Dokumentation zu diesem Thema.