如何从HtmlGenericControl获取生成的HTML表单

8
我有一个HTML页面模板,需要在ASP.NET中动态添加其内容。我还需要根据数据生成多个模板页面实例。
很明显,使用字符串创建大量HTML是一种非常糟糕的方式。因此,我选择使用HtmlGenericControl生成我的HTML,并且成功了。但是,我无法从它中获取生成的HTML字符串。
将这些控件添加到ASP.NET页面并呈现很简单,但我需要它们的HTML。
如果不可能,是否有其他结构化的生成HTML的方法...?

1
这个问题是关于用户控件的,但它能帮到你吗?:https://dev59.com/EnVC5IYBdhLWcg3wcw0m - Laurent S.
2个回答

22

@Bartdude提供的技巧运行良好...

对于其他人,解决方案如下...

// create you generic controls
HtmlGenericControl mainDiv = new HtmlGenericControl("div");
// setting required attributes and properties
// adding more generic controls to it
// finally, get the html when its ready
StringBuilder generatedHtml = new StringBuilder();
using (var htmlStringWriter = new StringWriter(generatedHtml))
{
    using(var htmlTextWriter = new HtmlTextWriter(htmlStringWriter))
    {
        mainDiv.RenderControl(htmlTextWriter);
        output = generatedHtml.ToString();       
    }
}

希望这能对未来的读者有所帮助...:)


2

以下是相同的VB代码:

    Dim generatedHtml As New StringBuilder()
    Dim htw As New HtmlTextWriter(New IO.StringWriter(generatedHtml))
    mainDiv.RenderControl(htw)
    Dim output As String = generatedHtml.ToString()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接