Ho un carico di oggetti UserControl
(file ascx
) nel loro piccolo progetto. Quindi faccio riferimento a questo progetto in due progetti: l'API REST (che è un progetto di libreria di classi) e il sito Web principale.Rendering software di un Web UserControl
Sono sicuro che questo sarebbe facile nel sito Web, semplicemente utilizzare Controls.Add
in qualsiasi Panel
o controllo ASP.NET funzionerebbe.
Tuttavia, che dire dell'API? C'è un modo per rendere l'HTML di questo controllo, semplicemente conoscendo il tipo di controllo? Il metodo RenderControl non scrive alcun HTML per il writer in quanto il ciclo di vita del controllo non è nemmeno iniziato.
Si prega di tenere a mente che non ho i controlli nel progetto web, quindi non ho un percorso virtuale per il file ascx
. Quindi il metodo LoadControl non funzionerà qui.
Tutti i controlli in realtà derivano dallo stesso controllo di base. C'è qualcosa che posso fare all'interno di questa classe base che mi permetterà di caricare il controllo da un'istanza completamente nuova?
Un bell'aspetto. Sto solo cercando di implementarlo ora nella mia struttura. Una cosa che ho notato però - 'Forma HtmlForm = new HtmlForm();'. Questa variabile non è mai usata, perché 'form.Controls.Add' è commentato? Mi sto perdendo qualcosa? – Connell
Aggiornerò, c'è un modo per fare con un modulo normale, ma se il tuo controllo non ha un tag del modulo o non ne aggiungi uno in modo programmatico, avrai un errore di runtime. Questo è ciò che la classe FormLessPage ignora per te. –