Получить 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();

Это также работает