我的ASP.NET MVC应用程序有一个Html Helper文件.他们中的大多数只返回一个格式化的字符串.
以下是我的一个格式化字符串助手的示例:
public static string Label(this HtmlHelper helper, string @for, string text)
{
return string.Format("<label for \"{0}\">{1}</label>", @for, text);
}
Run Code Online (Sandbox Code Playgroud)
这是一个TagBuilder版本,它给出了与上面相同的结果:
public static string Label(this HtmlHelper helper, string @for, string text)
{
var builder = new TagBuilder("label");
builder.Attributes.Add("for", @for);
builder.SetInnerText(text);
return builder.ToString(TagRenderMode.Normal);
}
Run Code Online (Sandbox Code Playgroud)
现在,我已经从混合实现中读取/学习MVC的一些站点.有些人使用这种TagBuilder方法,有些人则使用string.Format(),有些人则互换使用.
标签标签相当简单,那么返回格式化的字符串而不是实例化TagBuilder像这样的标签的类是"更好" 吗?
我不一定担心性能,我只是好奇为什么有些人选择TagBuilder而其他人使用格式化的字符串.
谢谢你的启示!
只是想知道这两者之间的区别是什么,当我在HtmlHelper中构建表时,它们中的一个或另一个的好处是什么
HtmlTable table = new HtmlTable();
Run Code Online (Sandbox Code Playgroud)
和:
TagBuilder table = new TagBuilder("table");
Run Code Online (Sandbox Code Playgroud)
这和这个问题大致相同,
为什么使用TagBuilder而不是StringBuilder?
但我更想知道这两者之间的区别.