Gibt es eine Möglichkeit, das gerenderte HTML eines Elements basierend auf seinen Präsentationswerten aus dem Code dahinter abzurufen? In einem kürzlich durchgeführten Projekt musste dies getan werden, und wir kratzen derzeit unsere eigene Site mit einer weiteren Anfrage, die verschwenderisch erscheint.

5
Teeknow 29 Dez. 2015 im 20:06

3 Antworten

Beste Antwort

Leider glaube ich nicht, dass es einen sauberen Weg gibt, dies zu erreichen. Eine Benutzersteuerung hängt stark vom Durchlaufen des Seitenlebenszyklus und daher von einer HTTP-Anforderung ab. Sie haben auch häufig Abhängigkeiten von verschiedenen Teilen des Sitecore-Kontexts, die im Verlauf einer Anforderung aufgebaut werden.

Mit MVC haben Sie mehr Optionen, da Sie die Render-Methode direkt aufrufen können. Aber Sie müssen das Modell erst noch richtig aufbauen. Sie werden also wahrscheinlich immer noch Schwierigkeiten haben.

Wie Sie sagten, scheint es verschwenderisch, aber Screen Scraping ist der übliche Weg, um dies zu erreichen. Ich kenne einige vorhandene Module, die diesen Ansatz zum Indizieren von Seiteninhalten verwenden.

3
Martin Davies 31 Dez. 2015 im 00:13

Normalerweise öffne ich eine Webanfrage und hole den Artikel. Wenn ich nur einen bestimmten Platzhalter benötige, beschränke ich den Zugriff über ?mode=placeholder-name darauf.

Dies ist besonders nützlich, wenn Sie die Site crawlen und HTML in Ihrem Suchindex zwischenspeichern möchten.

1
Extreme Coders 30 Dez. 2015 im 19:51

Meinst du im Experience Editor? Wir hatten das gleiche Problem beim Versuch, Seiten für die Suche zu indizieren, die im Experience Editor entwickelt wurden. Wir haben eine HttpRequest für die Seite erstellt, den HTML-Code abgerufen, alle Tags entfernt und den Inhalt als _content indiziert. Wenn wir dann eine Schlüsselwortsuche durchführen wollten, haben wir uns mit _content abgeglichen. Hoffe das hilft. Charlie

0
Charlie Afford 30 Dez. 2015 im 20:18