2013-05-08 13 views
6

Ho un modello per la pagina HTML e ho bisogno di aggiungere i suoi contenuti dinamicamente in ASP.NET. Devo anche creare molte istanze della pagina del modello, a seconda dei dati.Come ottenere il modulo Html generato HtmlGenericControl

È ovvio che la creazione di grandi Html utilizzando stringhe è molto sporca. Così ho scelto di generare il mio Html usando HtmlGenericControl. E l'ho fatto. Ma Non riesco a ottenere l'Html generato come stringa da esso.

È semplice aggiungere questi controlli nelle pagine ASP.NET e ottenere il rendering, ma ho bisogno del loro Html.

Se non è possibile, esiste un altro modo strutturato per generare Html ... ???

+1

Questo è per UserControl, ma potrebbe aiutare nel vostro caso? : http: //stackoverflow.com/questions/288409/how-do-i-get-the-html-output-of-a-usercontrol-in-net-c –

+0

Ha funzionato l'uomo ... grazie mille. .. :) –

risposta

20

raccontata da trucco @Bartdude funzionato come un fascino ...

Per gli altri popoli, la soluzione va in questo modo ...

// create you generic controls 
HtmlGenericControl mainDiv = new HtmlGenericControl("div"); 
// setting required attributes and properties 
// adding more generic controls to it 
// finally, get the html when its ready 
StringBuilder generatedHtml = new StringBuilder(); 
using (var htmlStringWriter = new StringWriter(generatedHtml)) 
{ 
    using(var htmlTextWriter = new HtmlTextWriter(htmlStringWriter)) 
    { 
     mainDiv.RenderControl(htmlTextWriter); 
     output = generatedHtml.ToString();  
    } 
} 

Spero che questo aiuti per venire lettori ... :)

1

E qui è lo stesso codice in VB:

Dim generatedHtml As New StringBuilder() 
    Dim htw As New HtmlTextWriter(New IO.StringWriter(generatedHtml)) 
    mainDiv.RenderControl(htw) 
    Dim output As String = generatedHtml.ToString() 
Problemi correlati