В настоящее время у меня есть один Example.aspx файл ( без кода позади ), и я хочу загрузить его, заполнить элементы управления, получить его выход и сделать что-то с этим (внутри обработчика http).
Что я делаю, это:
// Gets the page and instantiates it?
Type type = BuildManager.GetCompiledType("~/Example.aspx");
Page page = (Page)Activator.CreateInstance(type);
// ProcessRequest of page here?
// Error happens here, the page doesn't have any controls (but there is a label).
((Label)page.FindControl("Label")).Text = "Hello World";
using (StringWriter output = new StringWriter())
{
// Execute the page and output the result into the string writer.
HttpContext.Current.Server.Execute(page, output, false);
// Do something with the output (or save it, email it, etc)
// ...in this case we render it.
context.Response.ContentType = "text/html";
context.Response.Write(output.ToString());
}
Но это не работает, так как экземпляр страницы не имеет никаких элементов управления (необходимо создать дочерние элементы управления?).
Если я добавлю:
page.ProcessRequest(HttpContext.Current);
это работает, но я думаю, что он работает весь жизненный цикл страницы, и это включает в себя отображение страницы в ответ, что я не хочу.