В одном из проектов возник вопрос как получить html-рендер страницы в текстовом виде для каких то действий. Нашли 2 варианта
Вариант 1. С помощью Server.Execute()
System.IO.StringWriter htmlStringWriter = new
System.IO.StringWriter();
Server.Execute("Page.aspx", htmlStringWriter);
string
htmlOutput = htmlStringWriter.GetStringBuilder().ToString();
Вариант 2. Переопределив метод Render()
public partial class FilterDemo : System.Web.UI.Page
{
HtmlTextWriter _oldWriter = null;
StringWriter _stringWriter = new StringWriter();
protected override HtmlTextWriter CreateHtmlTextWriter(TextWriter tw)
{
_oldWriter = base.CreateHtmlTextWriter(tw);
return base.CreateHtmlTextWriter(_stringWriter);
}
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
string html = _stringWriter.ToString();
html = html.Replace("REPLACE ME!", "IT WAS REPLACED!");
_oldWriter.Write(html);
}
}