html的字符串生成器或html标记生成器。哪个有效?

时间:2013-03-03 05:43:43

标签: asp.net html performance stringbuilder

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

另外,性能明智哪个更好?

1 个答案:

答案 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标签出错的可能性