我通常使用字符串构建器在代码隐藏中动态构造html并将其写入Dom。到目前为止,我从未使用htmlbuilder在codebehind中构建html。最近看到我们的一些项目正在使用htmlbuilder。我的问题是,我觉得很舒服在stringbuilder中构建html。由于有htmlbuilder专门为此,请让我知道哪个是有效的构建动态HTML和写入dom。此外,它们相互优势构建动态html。
另外,性能明智哪个更好?
答案 0 :(得分:1)
如果您正在接受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特定的东西,比如id,打开结束标签等。
我建议你最好使用它而不是直接使用stringbuilder,因为它会降低你使用html标签出错的可能性