2

我通常使用字符串生成器在代码隐藏中动态构造 html 并将其写入 Dom。到目前为止,我从未使用 htmlbuilder 在代码隐藏中构建 html。最近看到我们的一些项目正在使用htmlbuilder。我的问题是,我觉得在 stringbuilder 中构建 html 很舒服。由于有专门用于此的 htmlbuilder,请告诉我哪个对于构建动态 html 和写入 dom 是有效的。此外,它们在构建动态 html 方面的优势。

另外,性能方面哪个更好?

4

1 回答 1

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 特定的东西,比如 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

于 2013-03-03T05:54:51.307 回答