C# 获取ASP.NET控件在代码隐藏中呈现的HTML

C# 获取ASP.NET控件在代码隐藏中呈现的HTML,c#,asp.net,C#,Asp.net,嗨,我想在代码隐藏中调用面板中相应的html。我该怎么做 我有这个 <asp:Panel ID="MyPanel" runat="server"> // other asp.net controls and html stuffs here. </asp:Panel> //这里有其他asp.net控件和html内容。 我想获得与MyPanel相当的HTML,并在我的代码中获取它的所有内容,比如PageLoad或某些方法 谢谢。RenderControl()不

嗨,我想在代码隐藏中调用面板中相应的html。我该怎么做

我有这个

<asp:Panel ID="MyPanel" runat="server">
    // other asp.net controls and html stuffs here.
</asp:Panel>

//这里有其他asp.net控件和html内容。
我想获得与
MyPanel
相当的HTML,并在我的代码中获取它的所有内容,比如PageLoad或某些方法

谢谢。

RenderControl()不起作用吗

创建控件的实例,然后对其调用RenderControl()。当然,这意味着您的面板位于用户控件中

评论示例:

StringBuilder sb = new StringBuilder(); 
StringWriter tw = new StringWriter(sb); 
HtmlTextWriter hw = new HtmlTextWriter(tw); 
ctrl.RenderControl(hw); 
var html = sb.ToString(); 

@希夫·库马尔的回答是正确的。但是,您不需要使用
StringBuilder

StringWriter tw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(tw); 
ctrl.RenderControl(hw); 
var html = tw.ToString();

这也可以

但RenderControl()的返回类型为void。。我需要获取字符串或对象的HTML等价物。您将TextWriter传递给RenderControl()方法。当该方法返回时,您的html位于TextWriterStringBuilder sb=new StringBuilder()中;StringWriter tw=新的StringWriter(sb);HtmlTextWriter hw=新的HtmlTextWriter(tw);控制渲染控制(hw);var html=sb.ToString();其中,ctrl是UserControls的实例,如果(例如)通过javascript将类似a的元素动态添加到面板中,则此操作不起作用。动态添加的内容没有出现在结果中。这里有类似的问题:@Mixxiphoid抱歉,这是一个打字错误。请找到最新的答案