Ho un'area di contenuto che avrà alcuni blocchi, alcuni attributi di questi blocchi devono essere inizializzati con dati da una query SQL, quindi nel controller ho qualcosa di simile:EpiServer - Aggiungi programmaticamente un'area di contenuto
foreach (ObjectType item in MyList)
{
BlockData currentObject = new BlockData
{
BlockDataProperty1 = item.ItemProperty1,
BlockDataProperty2 = item.ItemProperty2
};
/*Dont know what to do here*/
}
Quello che mi serve, è lavorare con currentObject
come blocco e aggiungerlo a un'area di contenuto che ho definito in un altro blocco. Ho provato ad utilizzare
myContentArea.Add(currentObject)
ma dice che non può aggiungere un oggetto in un area di contenuto, perché si aspetta per un tipo di IContent
.
Come posso trasmettere quell'oggetto in un IContent
?
Grazie per la risposta, sembra funzionare, ma hanno ancora un problema, la riga repo.Save (newBlock, SaveAction.Publish); segnala un errore dicendo che il migliore sovraccarico per Salva ha alcuni argomenti non validi, già provato repo.Save (newBlock, SaveAction.Publish, AccessLevel.Administer); e anche IContentRepository.Save (repo, newBlock, saveAction.Publish) – rhernandez
Sì, sembra lo stesso problema di cast di "IContent'. Prova 'repo.Save ((IContent) newBlock, SaveAction.Publish);' – whyleee
Funziona! ora sta mostrando i dati come un blocco e le proprietà modificabili stanno funzionando bene. Solo un'altra domanda (non sono sicuro di dover aprire un altro thread) i blocchi vengono aggiunti correttamente, ma quando vado al componente principale, ContentArea sembra vuoto, quindi ho controllato e ho capito che i blocchi sono stati aggiunti a la cartella di analisi globale, come posso "dire" al componente di essere mostrato nell'area di contenuto in modalità di modifica? Sto provando con questa soluzione http://joelabrahamsson.com/custom-rendering-of-content-areas/ ma non funziona per me finora. Grazie – rhernandez