我通常使用字符串生成器在代码隐藏中动态构造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