Ok, sono uno sviluppatore web esperto ma a volte ASP.Net mi sta ingannando. Ho una pagina principale in asp.net. Quindi ho una pagina basata su quella pagina principale (home.aspx). Ora in home.aspx.cs voglio accedere all'asp: controlli del contenuto per aggiungere controlli a livello di programmazione.Access asp: contenuto dal codice
aspx assomiglia a questo:
<asp:Content ID="leftCol" ContentPlaceHolderID="cphLeftCol" Runat="Server">
<asp:PlaceHolder ID="phLeftCol" runat="server">
</asp:PlaceHolder>
</asp:Content>
mi aspetterei che posso fare riferimento "LeftCol" dal mio codice dietro. Ma è sconosciuto lì. Per il test ho aggiunto il mio segnaposto "phLeftCol". Posso fare riferimento a ciò senza problemi.
C'è qualcosa che non vedo?
Quindi, la mia soluzione è migliore pratica. Che peccato. – newtogit
Ci sono altri controlli contenitore forse più adatti alla tua situazione rispetto a un controllo segnaposto (dovresti davvero sapere di più su cosa stai facendo), ma il controllo dei contenuti non è un'opzione. –
Pensa a ciascun oggetto ContentPlaceHolder (sulla pagina mastro) ea ciascun oggetto di contenuto (pagina di contenuto) corrispondente semplicemente agli estremi opposti di un collegamento che indica al sistema di rendering principale/contenuto dove e cosa incorporare nella pagina principale. Ogni ContentPlaceHolder nella pagina principale indica semplicemente dove inserire le cose definite in ciascun oggetto Contenuto corrispondente nella pagina di contenuto. Dato che questi oggetti servono solo da collegamento su dove/cosa incorporare, sono come meta-oggetti per il sistema di rendering Master/Contenuti, quindi non fanno mai parte della gerarchia di controllo. – Triynko