2009-07-12 7 views
0

J'essaie de créer une classe Dérivées de System.Web.UI.Page et override Render i mis ce code:Incorrect Page Render

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

Mon problème est quand j'essaie voir le code généré

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

d'abord> après que CDATA est faux je ne veux pas qu'il soit généré. Aucune suggestion?

+0

Stupide question mais êtes-vous sûr que le ">" n'est pas en face du

sur votre page ASPX? –

+0

Non. Mon fichier aspx est clair 0 lignes de html ou de script – pedrofernandes

+0

S'il est clair d'où vient l'étiquette de formulaire? –

Répondre

0

On dirait que le moteur de rendu essaie de valider le code HTML ou quelque chose de similaire. Essayez peut-être de rendre ceci dans un flux, puis insérez et ajoutez les éléments CDATA à celui-ci?

0

Pouvez-vous essayer de rendre un tag DIV vide avant d'appeler base.Render? Je soupçonne qu'il pourrait y avoir un contrôle ou un adaptateur de page impliqué dans cela, et voir ce qui se passe au '>' en conséquence aiderait.

0

J'ai essayé

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

base.Render(hw); 

string a = sb.ToString(); 

son tout ok, mais à côté quand j'introduisons

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

le problème persiste. Je suspecte de la variable d'auteur (HtmlTextWriter), existe un moyen de ne pas valider html pendant le processus de rendu?

Questions connexes