Durante la pubblicazione di presentazioni di componenti dinamici utilizzando SDL Tridion 2011 SP1, utilizzo principalmente REL come formato di output, tuttavia ora desidero pubblicare un DCP contenente un tag di controllo ASP.NET. Ho quindi modificato il formato di output del modello in ASCX e configurato la memoria per le presentazioni dei componenti ASCX per andare al file system all'interno della mia applicazione web. Posso vedere i file ascx sul disco e, come previsto, posso vedere il tag di controllo all'interno.Tridion ASCX DCP non esegue il rendering del controllo figlio
Se creo una pagina aspx che contiene lo stesso tag di controllo, l'output è come mi aspetto, tuttavia, quando la presentazione del componente ASCX viene eseguita dall'assemblatore di presentazione del componente, invece di rendere l'output dal tag di controllo, esce vuoto Viene visualizzato il testo normale all'interno del DCP.
La funzionalità di cui ho bisogno è molto simile a un controllo di collegamento Tridion Dynamic Component, e avevo già provato uno di questi con questa architettura, e ci sono riuscito. Sono persino arrivato a inserire sia il mio tag che il tridion uno dopo l'altro nel modello. In questo caso vedo l'output dal tag tridion, ma non dal mio, anche se i riferimenti sono cablati nello stesso web.config.
Quindi posso vedere che è possibile che l'assemblatore di presentazione dei componenti di Tridion esegua un DCP ASCX e che esegua correttamente i controlli figlio. Ci sono forse dei requisiti quando si crea un tale controllo per garantire che possa essere reso in questo modo?
UPDATE:
Il DCP è pubblicato in un file ascx all'interno del mio sito. Per scopi di test, ora sto pubblicando il controllo Tridion nella stessa DCP, così l'output su disco appare così:
<tridion:DynamicComponentLink PageURI="tcm:34-667-64" ComponentURI="tcm:34-876"
TemplateURI="tcm:34-864-32" LinkText="Some page" runat="server" />
<xxx:ComponentLinkQS runat="server" ComponentUri="tcm:34-945"
QueryString="item=876" Text="Some page" />
Quando il DCP è pubblicato in questo modo, ed eseguito dal ComponentPresentationAssembler il primo controllo produce la output atteso, e il secondo no. Se inserisco un tag <xxx:ComponentLinkQS/>
direttamente su una pagina ASPX, viene visualizzato correttamente.
Hai provato a scrivere un semplice controllo "ciao mondo" per vedere se potrebbero esserci dei problemi con il tuo nuovo controllo di collegamento in esecuzione senza essere direttamente su una pagina? –
Gli archivi DCP ASCX sono memorizzati all'interno dell'applicazione Web? – Quirijn