2012-09-13 12 views
8

Sto correndo in una situazione in cui ho un attacco con il valore ${test}, nel mio modello componente che rende questo il valore esce ok il problema arriva quando un altro modello chiama questo componente e modelli usando @@RenderComponentPresentation(Component.ID, MyFirstTemplate)@@ a questo punto il ${test} è valutato e poiché non esiste tale elemento sul componente o nel pacchetto, non valuta nulla.

  • ho Template Componente Uno che legge il valore di un campo Component (che contiene: ${test})

    • Questo modello rende bene, torno "$ {test}"
  • ora ho Component Template Due che chiama @@RenderComponentPresentation(Component.ID, ComponentTemplateOne.ID)@@

    • Questo è il punto in cui il valore ${test} viene ora valutato anziché mantenuto, quindi va da ${test} a "" perché non trova un nome di campo variabile o componente con quel nome.
  • Component Template Due poi viene chiamato da Component Template tre allo stesso modo @@RenderComponentPresentation(Component2.ID, ComponentTemplateTwo.ID)@@

    • Dal momento che l'${test} è già stato valutato e ha perso in Template Componente Due io alla fine non è più il passo con ${test} Sono ancora lasciato con "".

ho provato:

  • @@RenderComponentField('myField', 0, False, False)@@
  • @@RenderComponentField('myField', 0, True, False)@@
  • @@RenderComponentField('myField', 0, False, True)@@

senza fortuna.

Il seguente è stato il mio lavoro intorno e sembra funzionare:

  • Posizionamento del "\" di fronte sia alla parentesi graffa di apertura e chiusura $\{test\}
  • ho bisogno di assicurarsi che rimuovo " \ "dopo l'ultimo Template (Pagina o Componente) eseguito.
  • ho in atto ora un C# TBB che prende le "$ {test}" e fa quanto segue ad esso:
    • Converte il ${test}-$\{test\} nel modello iniziale e un C# TBB sul modello di pagina che poi lo restituisce al valore iniziale di ${test}.

C'è un modo per evitare che ciò accada o un modo per evitare di fare quello che sto facendo per fare questo lavoro?

risposta

4

Hai provato questo link, si dovrebbe essere in grado di questo con questo link

@@"$" + "{" + "test" + "}"@@ 
+0

Grazie per il suggerimento funziona per il primo modello, ma il secondo modello che chiama il primo modello lo valuta e non lo fa trova un oggetto nel pacchetto o nel componente con quel nome e non reiterà nulla. Quindi invece di mantenere $ {endpoint} ottengo "". – TridionNut

Problemi correlati