我有一个Html页面的模板,我需要在ASP.NET中动态添加其内容。我还需要对模板页面进行多次设置,具体取决于数据。
很明显,使用字符串创建大型Html非常脏。所以我选择使用HtmlGenericControl生成我的Html。而我做到了。但我无法将生成的Html作为字符串从中获取。
在ASP.NET页面中添加这些控件并进行渲染很简单,但我需要他们的Html。
如果不可能,是否有任何其他结构化的方式来生成Html ...... ???
答案 0 :(得分:21)
对于其他人来说,解决方案就是这样......
// 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();
}
}
希望这有助于即将到来的读者...... :)
答案 1 :(得分:1)
这是VB中的相同代码:
Dim generatedHtml As New StringBuilder()
Dim htw As New HtmlTextWriter(New IO.StringWriter(generatedHtml))
mainDiv.RenderControl(htw)
Dim output As String = generatedHtml.ToString()