2

私は通常、文字列ビルダーを使用して分離コードで動的に html を構築し、それを Dom に書き込みます。これまで、コードビハインドでhtmlを構築するためにhtmlbuilderを使用したことはありません。最近、私たちのプロジェクトのいくつかが 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();
    }

つまり、基本的に唯一の違いは、ID、オープンクロージングタグなどの特定のHTML固有のものをターゲットにするいくつかの優れた方法を提供することです。

htmlタグでエラーが発生する可能性が低くなるため、stringbuilderを直接使用するのではなく、これを使用することをお勧めします。

于 2013-03-03T05:54:51.307 に答える