1.定義頁面內容
View Code
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"><asp:Panel ID="resultDiv" runat="server"> <h2> 歡迎使用 ASP.NET! </h2> <p> 若要進一步瞭解 ASP.NET,請造訪 <a href="http://www.asp.net" title="ASP.NET 網站">www.asp.net</a>。 <asp:TextBox ID="TextBox1" runat="server" Text="gsw"></asp:TextBox> </p> <p> 您也可以尋找 <a href="http://go.microsoft.com/fwlink/?LinkID=152368" title="MSDN ASP.NET 檔案">MSDN 上有關 ASP.NET 的檔案</a>。 </p></asp:Panel> <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /></asp:Content>
2.重寫 Render 方法
代碼如下:
View Code
protected override void Render(HtmlTextWriter writer) { StringWriter sw; HtmlTextWriter htmltw; sw = new StringWriter(); htmltw = new HtmlTextWriter(sw); base.Render(htmltw); //htmltw = writer; StringBuilder temp = sw.GetStringBuilder(); //base.Render(writer); string PageResult = temp.ToString(); writer.Write(PageResult); System.IO.StreamWriter strWrite = new StreamWriter(Server.MapPath("a.html")); strWrite.Write(PageResult); strWrite.Close(); }
上面的代碼,是整個頁面輸出到html。
3.可以指定伺服器控制項的內容,輸出成html。
3.1 需要重寫方法VerifyRenderingInServerForm
代碼如下:
public override void VerifyRenderingInServerForm(Control control) { return; }
3.2 重寫 Render 方法
protected override void Render(HtmlTextWriter writer) { base.Render(writer); System.Text.StringBuilder strBuilder = new System.Text.StringBuilder(); System.IO.StringWriter oStringWriter = new System.IO.StringWriter(strBuilder); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); strBuilder.Append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><title>首頁</title></head><body>"); resultDiv.RenderControl(oHtmlTextWriter); System.IO.StreamWriter strHtmlFile = System.IO.File.CreateText(Server.MapPath( "a.html")); strBuilder.Append("</body></html>"); strHtmlFile.WriteLine(strBuilder.ToString()); strHtmlFile.Close(); }