我有第三方工具,使用HtmlTextWriter的RenderBeginTag,RenderEndTag& amp;来创建一个img标签。 AddAttribute方法。我希望将生成的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?
}
答案 0 :(得分:11)
StringWriter w = new StringWriter();
HtmlTextWriter h = new HtmlTextWriter(w);
ctl.RenderControl(h);
return w.ToString();
显然,你必须正确关闭连接。但这大致是这个;我已经为单元测试做了这个,但是我很抱歉,我目前没有确切的代码。
HTH。
答案 1 :(得分:3)
这应该适合你:
output.AddAttribute(HtmlTextWriterAttribute.Src, src);
output.RenderBeginTag(HtmlTextWriterTag.Img);
output.RenderEndTag();
string html = output.InnerWriter.ToString();
希望这有帮助。