我通常使用字符串生成器在代碼隱藏中動態構造html並將其寫入Dom。到目前爲止,我從來沒有使用htmlbuilder在代碼隱藏中構建html。最近看到我們的一些項目正在使用htmlbuilder。我的問題是,我覺得在stringbuilder中建立html的舒適度。由於有專門的htmlbuilder,請讓我知道哪些是有效的構建動態html和寫入dom。另外,它們在構建動態html時相互之間有優勢。html的字符串生成器或html標記生成器。這是有效的?
另外,性能明智哪個更好?
我通常使用字符串生成器在代碼隱藏中動態構造html並將其寫入Dom。到目前爲止,我從來沒有使用htmlbuilder在代碼隱藏中構建html。最近看到我們的一些項目正在使用htmlbuilder。我的問題是,我覺得在stringbuilder中建立html的舒適度。由於有專門的htmlbuilder,請讓我知道哪些是有效的構建動態html和寫入dom。另外,它們在構建動態html時相互之間有優勢。html的字符串生成器或html標記生成器。這是有效的?
另外,性能明智哪個更好?
如果您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標籤
其實我覺得閱讀代碼和調試內容更有可能當我使用字符串生成器。我也想知道,從性能的角度來看,更適合創建大型動態html內容? – 2013-03-03 05:59:21
@Moniecorleone正如Daniel所言,TagBuilder在內部使用StringBuilder ..性能問題是無效的。 – 2013-03-03 09:10:40
所以唯一的區別是,實施的方式是什麼? – 2013-03-03 14:07:17
你指的是TagBuilder? – 2013-03-03 05:48:43
是指html標籤生成器類。 – 2013-03-03 05:56:41