我有一个第三方工具,该工具使用HtmlTextWriter的RenderBeginTag,RenderEndTag和AddAttribute方法通过代码创建img标签。我想将生成的HTML转换为字符串。
我尝试了提到的here反射方法,但出现错误“无法将类型为'System.Web.HttpWriter'的对象转换为类型为'System.IO.StringWriter'”。 HtmlTextWriter的InnerWriter类型是HttpWriter类型。
关于如何将输出html复制到字符串中的任何想法?
添加:来自第三方控件的代码
protected override void Render( HtmlTextWriter output )
{
.....
output.AddAttribute( HtmlTextWriterAttribute.Src, src );
output.RenderBeginTag( HtmlTextWriterTag.Img );
output.RenderEndTag();
<-- What is the HTML now? Maybe look in OnPreRenderComplete event?
}
最佳答案
StringWriter w = new StringWriter();
HtmlTextWriter h = new HtmlTextWriter(w);
ctl.RenderControl(h);
return w.ToString();
显然,您必须正确关闭连接。大概就是这个;我已经进行了单元测试,但是很抱歉,目前我还没有确切的代码。
HTH。