1
目前我有一個單一的Example.aspx文件(沒有代碼背後的),我想加載它,填充它的控件,獲取它的輸出並做一些事情(在一個http處理程序中) 。填充從ASPX文件中動態實例化頁面的控件?
我在做什麼是這樣的:
// 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);
它的工作原理,但我認爲它運行整個頁面生命週期和包括渲染頁面的響應,這是我不想要的。
你爲什麼要這樣做? (我出於好奇而問)這只是一個實驗,還是你有一個特定的目的? – jwiscarson
http://stackoverflow.com/a/1732213/284240 –
@jwiscarson:這是一個實驗,並嘗試使用asp.net進行簡單模板。而不是實現我自己的模板系統,我希望asp.net來做到這一點。 –