我通常使用字符串生成器在代码隐藏中动态构造 html 并将其写入 Dom。到目前为止,我从未使用 htmlbuilder 在代码隐藏中构建 html。最近看到我们的一些项目正在使用htmlbuilder。我的问题是,我觉得在 stringbuilder 中构建 html 很舒服。由于有专门用于此的 htmlbuilder,请告诉我哪个对于构建动态 html 和写入 dom 是有效的。此外,它们在构建动态 html 方面的优势。
另外,性能方面哪个更好?
我通常使用字符串生成器在代码隐藏中动态构造 html 并将其写入 Dom。到目前为止,我从未使用 htmlbuilder 在代码隐藏中构建 html。最近看到我们的一些项目正在使用htmlbuilder。我的问题是,我觉得在 stringbuilder 中构建 html 很舒服。由于有专门用于此的 htmlbuilder,请告诉我哪个对于构建动态 html 和写入 dom 是有效的。此外,它们在构建动态 html 方面的优势。
另外,性能方面哪个更好?
如果您要引用TagBuilder
该类,则它在StringBuilder
内部使用
/// <summary>
/// Renders the HTML tag by using the specified render mode.
/// </summary>
///
/// <returns>
/// The rendered HTML tag.
/// </returns>
/// <param name="renderMode">The render mode.</param>
public string ToString(TagRenderMode renderMode)
{
StringBuilder sb = new StringBuilder();
switch (renderMode)
{
case TagRenderMode.StartTag:
sb.Append('<').Append(this.TagName);
this.AppendAttributes(sb);
sb.Append('>');
break;
case TagRenderMode.EndTag:
sb.Append("</").Append(this.TagName).Append('>');
break;
case TagRenderMode.SelfClosing:
sb.Append('<').Append(this.TagName);
this.AppendAttributes(sb);
sb.Append(" />");
break;
default:
sb.Append('<').Append(this.TagName);
this.AppendAttributes(sb);
sb.Append('>').Append(this.InnerHtml).Append("</").Append(this.TagName).Append('>');
break;
}
return ((object) sb).ToString();
}
所以基本上唯一的区别是它提供了一些很好的方法来定位某些 html 特定的东西,比如 ids、打开的结束标签等。
I would suggest you are best off using this instead of using the stringbuilder directly as it going to make it less likely you make errors with the html tags