Um den Text-Output eines einfachen Controls zu bekommen bedarf es nicht viel, beinhaltet das Control selbst aber weitere Controls, die womöglich datengebunden sind oder auf Events hören, dann muss man diese Events auch "feuern". Mit folgendem Snippet funktioniert das wunderbar:
Page page = new Page();
UserControl control = (UserControl)page.LoadControl("~/Template.ascx");
page.Controls.Add(control);
StringWriter html = new StringWriter();
HttpContext.Current.Server.Execute(page, html, false);
Response.Write("<pre>" + html + "</pre>");
Abgeguckt hier.
(Das ermöglicht btw. interessante Einsatzgebiete, z.B. könnte man so E-Mail-Templates mit Listendarstellungen völlig designerfreundlich über ein UserControl realisieren ...)