是否可以在 ASP.NET 中获取包含一些 HTML 的字符串并让 ASP.NET 解析它并为我创建一个控件?例如:
string rawHTML = "<table><td><td>Cell</td></tr></table>";
HTMLTable table = MagicClass.ParseTable(rawHTML);
我知道这是一件坏事,但不幸的是,这是我实现所需目标的唯一方法(因为我无法修改该特定同事的代码)。
此外,我知道 LiteralControl 允许您拥有一个包含任意 HTML 的控件,但遗憾的是我需要将它们转换为适当的控件。
不幸的是,HTMLTable 不支持 InnerHTML 属性。我需要按原样保留 HTML 树,所以我不能将它放入 <div>
中。标签。
谢谢。
最佳答案
我想你会得到的最接近的是 Page.ParseControl ,这是 ASP.NET 解析器。缺点是您拥有的文本是一个 LiteralControl,因为它上面没有 runat="server"- 所以您需要事先进行一些非常小的字符串操作。
换句话说:
this.ParseControl("<table><tr><td>Cell</td></tr></table>")
将产生:
Control
LiteralControl
鉴于:
this.ParseControl("<table runat=\"server\"><tr><td>Cell</td></tr></table>")
将产生:
Control
HtmlTable
HtmlTableRow
HtmlTableCell
LiteralControl
关于ASP.NET 将原始 HTML 解析为控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/248437/