tags:

views:

75

answers:

3

I trying create a class derivated from System.Web.UI.Page and in override Render i set this code:

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

My problem is when i try see code generated

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

first > after CDATA is wrong i don't want it generated. Any Suggestions?

A: 

Can you try rendering an empty DIV tag before calling base.Render? I suspect that there might be a control or page adapter involved in this, and seeing what happens to the '>' as a result would help.

Roger Willcocks
A: 

Seems like the renderer tries to validate the HTML or something similar. Try perhaps render this into a stream, and then Insert and Append the CDATA stuff to it?

synhershko
A: 

I tried this

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

 base.Render(hw);

 string a = sb.ToString();

its all ok but next when i introduce

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

the problem persist. I suspect from writer variable (HtmlTextWriter), exist a way for not validate html during render process?

pho3nix