我只是想知道这两者之间有什么区别,而当我在HtmlHelper中建立表格时,它们对彼此的好处是什么?
HtmlTable table = new HtmlTable();
和:
TagBuilder table = new TagBuilder("table");
这个问题或多或少是一样的,
Why use TagBuilder instead of StringBuilder?
但我更想知道这两者之间的区别。
最佳答案
主要区别在于HtmlTable
为<table>
元素的所有有效HTML属性(例如Width
,Height
,CellSpacing
等)提供类型化且名称正确的属性。它还具有Rows
属性,该属性是HtmlTableRow
对象的类型化集合,每个对象重新表示一个<tr>
元素。TagBuilder
是一种通用得多的API,可以肯定地用于构建HTML <table>
,但是您需要以类型安全性和可读性较差的方式来做更多的工作。
在HmlTable
元素上的TagBuilder
属性的设置中,width=""
不能以<table>
方式提供帮助的一个具体示例。
使用HtmlTable
:
HtmlTable htmlTable = new HtmlTable();
htmlTable.Width = "100px";
使用
TagBuilder
:TagBuilder tagBuilder = new TagBuilder("table");
tagBuilder.Attributes["width"] = "100px";
请注意,对于
TagBuilder
,元素的名称table
和属性的名称width
都是字符串,它们引入了两次使用HtmlTable
时不会发生的错误(拼写错误)机会。关于c# - HtmlTable和TagBuilder(“table”)之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3043800/