我有一个第三方工具,该工具使用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。

10-08 14:52