ASCX或ASP.net文件可以保存为HTML文件吗?如果是这样,怎么样?
答案 0 :(得分:1)
是的,要获取用户控件的呈现内容,可以执行以下操作:
StringWriter output = new StringWriter();
Page pageHolder = new Page();
UserControl viewControl = (UserControl)pageHolder.LoadControl("path to ascx file");
pageHolder.Controls.Add(viewControl);
HttpContext.Current.Server.Execute(pageHolder, output, true);
string htmlOutput = output.ToString();
如果需要,请确保您可以将上述内容改编为ASPX页面: - )
从那里,将其保存到文件应该是相当直接的。
HTH。 d
答案 1 :(得分:1)
您可以使用Render
或Page
的{{1}}方法直接执行此操作。由于该方法受到保护,因此您需要创建一个子类控件。从那里,你可以随心所欲地做任何事情。
e.g。
UserControl
您可能不希望在页面的public partial class MyPage: Page
{
public string GetPageContents()
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
using (HtmlTextWriter writer = new HtmlTextWriter(sw))
{
Render(writer);
}
return sb.ToString();
}
}
事件之前随时调用此方法,因为否则您无法确定所有子控件/事件/等已完成。