Преобразование содержания HtmlTextWriter к строке

У меня есть сторонний инструмент, который создает тег img через HtmlTextWriter использования кода методы RenderBeginTag, RenderEndTag & AddAttribute. Я хочу получить получающийся HTML в строку. Я попробовал отражательный метод, упомянутый здесь, но я получаю ошибку, "Не могущую бросать объект типа 'Система. Сеть. HttpWriter' для ввода 'Системы. IO.StringWriter". Тип InnerWriter HtmlTextWriter имеет тип 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?

  }

8
задан Community 23 May 2017 в 12:14
поделиться

2 ответа

StringWriter w = new StringWriter();
HtmlTextWriter h = new HtmlTextWriter(w);

ctl.RenderControl(h);

return w.ToString();

Очевидно, вы должны правильно закрыть соединения. Но это примерно так; Я сделал это для модульного тестирования, но прошу прощения, у меня сейчас нет точного кода.

HTH.

11
ответ дан 5 December 2019 в 12:07
поделиться

Это должно сработать для вас:

        output.AddAttribute(HtmlTextWriterAttribute.Src, src);
        output.RenderBeginTag(HtmlTextWriterTag.Img);
        output.RenderEndTag();

        string html = output.InnerWriter.ToString();

Надеюсь, это поможет.

3
ответ дан 5 December 2019 в 12:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: