2015-12-29 18 views
5

C'è un modo per ottenere l'html renderizzato di un elemento in base ai suoi valori di presentazione dal codice sottostante? In un recente progetto questo doveva essere fatto e stiamo attualmente raschiando il nostro sito con un'altra richiesta che sembra dispendiosa.Sitecore Get Rendered Html

+0

È possibile utilizzare l'API Web articolo ma non terrà conto dei parametri di rendering e sarà necessario fornire l'ID oggetto per l'origine dati. Suppongo che questo non è quello che stai cercando però. Pagina 15: https://sdn.sitecore.net/upload/sdn5/modules/sitecore%2520item%2520web%2520api/sitecore_item_web_api_developer_guide_sc65-66-usletter.pdf – jammykam

risposta

3

Purtroppo non penso che ci sia un modo pulito per raggiungere questo obiettivo. Un usercontrol si basa molto sull'esecuzione del ciclo di vita della pagina e quindi su una richiesta HTTP. Spesso hai anche dipendenze su varie parti del contesto Sitecore che si accumulano nel corso di una richiesta.

Con MVC hai più opzioni perché puoi chiamare direttamente il metodo Render. Ma devi ancora costruire correttamente il modello, in primo luogo. Quindi probabilmente avrai ancora delle difficoltà.

Come hai detto sembra uno spreco, ma lo scraping dello schermo è il solito modo per ottenerlo. Conosco un paio di moduli esistenti che utilizzano questo approccio per l'indicizzazione del contenuto della pagina.

+0

Grazie per il feedback. Sembra che lascerò l'approccio attuale da solo a causa delle ragioni sopra menzionate. – Teeknow

1

Io di solito apro una richiesta web e prendere il punto. Se ho solo bisogno di un segnaposto specifico, limito l'accesso ad esso tramite qualcosa come ?mode=placeholder-name.

Ciò è particolarmente utile quando si esegue la scansione del sito e si desidera memorizzare nella cache l'HTML nell'indice di ricerca.

0

Intendi nell'editor di esperienza? Abbiamo avuto lo stesso problema durante il tentativo di indicizzare le pagine per la ricerca che sono state sviluppate nell'editor di esperienza. Quello che abbiamo fatto è stato un HttpRequest alla pagina, recuperato l'html, rimosso tutti i tag e indicizzato il contenuto come _content. Quando poi volevamo fare una ricerca per parole chiave, abbiamo poi confrontato _content. Spero che questo ti aiuti. Charlie

+0

Sta già facendo una richiesta alla pagina e sta cercando un approccio alternativo. ("stiamo attualmente raschiando il nostro sito con un'altra richiesta") –

+1

Mancato che dispiace. Stavo cercando di pensare alla stessa cosa, ma non sono riuscito a trovarne uno :( –

+1

Nessun problema. Le varianti di questa domanda appaiono su Stack Overflow abbastanza spesso. Sarebbe bello se Sitecore riuscisse a trovare una soluzione. –