2013-03-03 92 views
2

我通常使用字符串生成器在代码隐藏中动态构造html并将其写入Dom。到目前为止,我从来没有使用htmlbuilder在代码隐藏中构建html。最近看到我们的一些项目正在使用htmlbuilder。我的问题是,我觉得在stringbuilder中建立html的舒适度。由于有专门的htmlbuilder,请让我知道哪些是有效的构建动态html和写入dom。另外,它们在构建动态html时相互之间有优势。html的字符串生成器或html标记生成器。这是有效的?

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

+0

你指的是TagBuilder? – 2013-03-03 05:48:43

+0

是指html标签生成器类。 – 2013-03-03 05:56:41

回答

1

如果您refferring到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(); 
    } 

所以基本上唯一的区别是,它提供了一些很好的方法来针对像IDS某些HTML具体的事情,开关闭标签等。

我建议你最好身上使用这个,而不是直接使用StringBuilder,因为它会使其不太可能,你会犯错误与html标签

+0

其实我觉得阅读代码和调试内容更有可能当我使用字符串生成器。我也想知道,从性能的角度来看,更适合创建大型动态html内容? – 2013-03-03 05:59:21

+0

@Moniecorleone正如Daniel所言,TagBuilder在内部使用StringBuilder ..性能问题是无效的。 – 2013-03-03 09:10:40

+0

所以唯一的区别是,实施的方式是什么? – 2013-03-03 14:07:17