我尝试创建一个派生自System.Web.UI.Page的类,并在覆盖Render时设置此代码:
writer.WriteLine("<![CDATA[");
base.Render(writer);
writer.WriteLine("\r\n]]>");
我的问题是当我尝试查看代码生成时
<![CDATA[
><form name="form1" method="post" action="Default.aspx" id="form1">
...
</form>
]]>
首先&gt;在CDATA错误后我不希望它生成。有什么建议吗?
答案 0 :(得分:0)
你可以在调用base.Render之前尝试渲染一个空的DIV标签吗? 我怀疑可能有一个控件或页面适配器,并看到'&gt;'会发生什么结果会有所帮助。
答案 1 :(得分:0)
似乎渲染器尝试验证HTML或类似的东西。尝试将此渲染为流,然后插入并附加CDATA内容?
答案 2 :(得分:0)
我试过这个
StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);
base.Render(hw);
string a = sb.ToString();
一切都好,但接下来当我介绍
writer.WriteLine("<![CDATA[");
writer.write (a);
writer.WriteLine("\r\n]]>");
问题仍然存在。我怀疑来自writer变量(HtmlTextWriter),在渲染过程中是否存在不验证html的方法?