How do I get the HTML output of a UserControl in .NET (C#)?
.net, c#, html, user-controls
Solution
You can render the control using `Control.RenderControl(HtmlTextWriter)`.
Feed `StringWriter` to the `HtmlTextWriter`.
Feed `StringBuilder` to the `StringWriter`.
Your generated string will be inside the `StringBuilder` object.
Here's a code example for this solution:
string html = String.Empty;
using (TextWriter myTextWriter = new StringWriter(new StringBuilder()))
{
using (HtmlTextWriter myWriter = new HtmlTextWriter(myTextWriter))
{
myControl.RenderControl(myWriter);
html = myTextWriter.ToString();
}
}
Problem
If I create a UserControl and add some objects to it, how can I grab the HTML it would render? ex. ``` UserControl myControl = new UserControl(); myControl.Controls.Add(new TextBox()); // ...something happens return strHTMLofControl; ``` I'd like to just convert a newly built UserControl to a string of HTML.