2
我有這樣的代碼:如何以編程方式用Form和UserControl構建System.Web.UI.Page?
public static string RenderView(string path)
{
Page pageHolder = new Page();
UserControl viewControl = (UserControl)pageHolder.LoadControl(path);
pageHolder.Controls.Add(viewControl);
StringWriter output = new StringWriter();
HttpContext.Current.Server.Execute(pageHolder, output, false);
return output.ToString();
}
這是從運行:
[WebMethod]
public string GetReportsHTML()
{
string output = "";
output = ViewManager.RenderView("ReportsControl.ascx");
return output;
}
這是測試渲染ASCX文件,並把它們吐掉了一個SOAP/REST的服務。
問題是,如果某些控件(runat = server ones)沒有封裝在runat = server標籤中,則會失敗。
解決方案是here,但解決方案假定在ASPX文件中,我可以編輯標記。
我將如何以編程方式構建一個頁面,添加一個窗體,設置runat = server,以便我可以遵循該解決方案並將我的控件添加到窗體控件?
你可以建立一個佔位符控制一個靜態頁面,然後你的用戶控件加載到這一點。 – nunespascal
根據對* .aspx.designer.cs' /'vb'文件的要求,是否必須編譯引用服務器端頁面上的任何對象以引用? – Paul
嗯,不知道,但jbl的答案有用。我只是不知道HTML