2009-07-12 73 views
0

我試圖創建System.Web.UI.Page和覆蓋推導一類渲染我設置代碼:不正確的頁面渲染

writer.WriteLine("<![CDATA["); 
base.Render(writer); 
writer.WriteLine("\r\n]]>"); 

我的問題是,當我嘗試看看代碼生成

<![CDATA[ 
><form name="form1" method="post" action="Default.aspx" id="form1"> 
... 
</form> 
]]> 

首先>在CDATA錯誤後,我不希望它生成。有什麼建議麼?

+0

愚蠢的問題,但你確定「>」不在你的ASPX頁面上的

? – 2009-07-12 21:21:19

回答

0

看起來像渲染器試圖驗證HTML或類似的東西。試試也許把它渲染成流,然後插入並附加CDATA的東西呢?

0

你可以嘗試在調用base.Render之前渲染一個空的DIV標籤嗎? 我懷疑可能有一個控件或頁面適配器涉及到這一點,並且看到'>'會發生什麼情況會有所幫助。

0

我想這

StringBuilder sb = new StringBuilder(); 
StringWriter tw = new StringWriter(sb); 
HtmlTextWriter hw = new HtmlTextWriter(tw); 

base.Render(hw); 

string a = sb.ToString(); 

其一切ok了,但接下來我介紹

writer.WriteLine("<![CDATA["); 
writer.write (a); 
writer.WriteLine("\r\n]]>"); 

問題仍然存在。我懷疑從作家變量(HtmlTextWriter),存在一種方法,在渲染過程中不驗證html?