Получить HTML-рендеринг с помощью элемента управления ASP.NET в коде
Привет, я хочу вызвать соответствующий html внутри панели в коде. Как я могу это сделать?
У меня есть это
<asp:Panel ID="MyPanel" runat="server">
// other asp.net controls and html stuffs here.
</asp:Panel>
Я хочу получить эквивалент HTML MyPanel
, и все его содержимое в моем коде запомнится в PageLoad или некоторых методах.
Спасибо.
Ответы
Ответ 1
Не работает ли RenderControl()?
Создайте экземпляр вашего элемента управления, а затем вызовите RenderControl() на нем. Конечно, это означает, что ваша панель находится в UserControl
пример из комментариев:
StringBuilder sb = new StringBuilder();
StringWriter tw = new StringWriter(sb);
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctrl.RenderControl(hw);
var html = sb.ToString();
Ответ 2
@Shiv Kumar ответ правильный. Однако для этого вам не нужен StringBuilder
.
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
ctrl.RenderControl(hw);
var html = tw.ToString();
Это также работает