2013-03-03 472 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