将HtmlTextWriter的内容转换为字符串

时间:2010-06-07 18:21:55

标签: .net asp.net htmltextwriter

我有第三方工具,使用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?

  }

2 个答案:

答案 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();

希望这有帮助。