在進行 ASP.NET 開發時,有時候需要對頁面輸出的最終 HTML 原始碼進行控制,是頁面的 render 方法中很容易實現這個功能。下面就是一個實現的方法,注釋都在代碼中。
<%@ Page Language="C#" %><br /><%@ Import Namespace="System.IO" %><br /><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br /><script runat="server"><br /> protected override void Render(HtmlTextWriter writer)<br /> {<br /> string content = string.Empty;<br /> StringWriter stringWriter = new StringWriter();<br /> HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter);<br /> try<br /> {<br /> // 將當前頁面的內容呈現到臨時的 HtmlTextWriter 對象中<br /> base.Render(htmlWriter);<br /> htmlWriter.Close();<br /> // 得到當前頁面的全部內容<br /> content = stringWriter.ToString();<br /> // 替換頁面中的部分內容<br /> string newContent = content.Replace("[mxh]", "孟憲會");<br /> // 將新頁面的內容顯示出來<br /> writer.Write(newContent);<br /> }<br /> catch { }<br /> finally<br /> {<br /> stringWriter.Dispose();<br /> htmlWriter.Close();<br /> htmlWriter.Dispose();<br /> }<br /> }<br /></script><br /><html xmlns="http://www.w3.org/1999/xhtml"><br /><head id="Head1" runat="server"><br /> <title>孟憲會之替換頁面呈現內容測試</title><br /></head><br /><body><br /> <form id="form1" runat="server"><br /> [mxh]<br /> </form><br /></body><br /></html>