HtmlTextWriter is very nice tool to generate HTML in C#, but it lack ability to get generated HTML as a string.
Here is a simple solution: HTmlTextWriter uses internally StringWriter which uses StringBuilder. So you first create StringBuilder and StringWriter, pass them to HtmlTextWriter and when you are done you simply call ToString() on the instance of StringBuilder.