HtmlTable和TagBuilder之间的区别("表")

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?

但我更想知道这两者之间的区别.

Dan*_*haw 5

主要的区别是,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.