我只是想知道这两者之间有什么区别,而当我在HtmlHelper中建立表格时,它们对彼此的好处是什么?

HtmlTable table = new HtmlTable();


和:

TagBuilder table = new TagBuilder("table");


这个问题或多或少是一样的,

Why use TagBuilder instead of StringBuilder?

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

最佳答案

主要区别在于HtmlTable<table>元素的所有有效HTML属性(例如WidthHeightCellSpacing等)提供类型化且名称正确的属性。它还具有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/

10-10 01:22