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.

Original source