MrW*_*MrW 3 c# asp.net-mvc html-helper
只是想知道这两者之间的区别是什么,当我在HtmlHelper中构建表时,它们中的一个或另一个的好处是什么
HtmlTable table = new HtmlTable();
Run Code Online (Sandbox Code Playgroud)
和:
TagBuilder table = new TagBuilder("table");
Run Code Online (Sandbox Code Playgroud)
这和这个问题大致相同,
为什么使用TagBuilder而不是StringBuilder?
但我更想知道这两者之间的区别.
主要的区别是,HtmlTable对于所有有效HTML属性提供类型和正确命名的属性<table>元素(例如Width,Height,CellSpacing等).它还具有Rows属性,该属性是HtmlTableRow对象的类型集合,每个对象都重新呈现<tr>元素.
TagBuilder是一个更通用的API,当然可以用于构建HTML,<table>但你需要以更少类型安全和不易阅读的方式做更多的工作.
一个具体的例子,其中HmlTable有一个方法是帮助,而TagBuilder不是在元素的width=""属性设置中<table>.
用HtmlTable:
HtmlTable htmlTable = new HtmlTable();
htmlTable.Width = "100px";
Run Code Online (Sandbox Code Playgroud)
用TagBuilder:
TagBuilder tagBuilder = new TagBuilder("table");
tagBuilder.Attributes["width"] = "100px";
Run Code Online (Sandbox Code Playgroud)
请注意,TagBuilder元素table的名称和属性的名称width都是引入错误机会(拼写错误)的字符串,这些错误在使用时不会发生HtmlTable.