我有一个 Html 页面模板,我需要在 ASP.NET 中动态添加它的内容。我还需要根据数据制作许多模板页面的实例。
很明显,使用字符串创建大型 Html 是非常肮脏的方式。所以我选择使用 HtmlGenericControl 生成我的 Html。我成功了。但我无法从中获取生成的 Html 作为字符串。
在 ASP.NET 页面中添加这些控件并进行渲染很简单,但我需要它们的 Html。
如果不可能,是否还有其他生成 Html 的结构化方式...???
我有一个 Html 页面模板,我需要在 ASP.NET 中动态添加它的内容。我还需要根据数据制作许多模板页面的实例。
很明显,使用字符串创建大型 Html 是非常肮脏的方式。所以我选择使用 HtmlGenericControl 生成我的 Html。我成功了。但我无法从中获取生成的 Html 作为字符串。
在 ASP.NET 页面中添加这些控件并进行渲染很简单,但我需要它们的 Html。
如果不可能,是否还有其他生成 Html 的结构化方式...???
@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();
}
}
希望这对即将到来的读者有所帮助......:)
这是VB中的相同代码:
Dim generatedHtml As New StringBuilder()
Dim htw As New HtmlTextWriter(New IO.StringWriter(generatedHtml))
mainDiv.RenderControl(htw)
Dim output As String = generatedHtml.ToString()