我正在开发一个 ASP.NET Web 应用程序,但我一直遇到同样的问题:
有时我想从代码隐藏将 HTML 写入页面。例如,我有一个页面 Editor.aspx,其输出取决于 GET 变量“view”的值。换句话说,“Editor.aspx?view=apples”输出的 HTML 与“Editor.aspx?view=oranges”不同。
我目前用 StringBuilder 输出这个 HTML。例如,如果我想创建一个列表,我可能会使用以下语法:
myStringBuilder.AppendLine("<ul id=\"editor-menu\">");
myStringBuilder.AppendLine("<li>List Item 1</li>");
myStringBuilder.AppendLine("</ul>");
问题是我宁愿为此目的使用 ASP.NET 的 List 控件,因为几行 StringBuilder 语法妨碍了我的代码的可读性。但是,ASP.NET 控件倾向于输出复杂的 HTML,具有唯一 ID、内联样式和偶尔的内联 JavaScript 块。
我的问题是,是否有一个仅代表通用 HTML 标记的 ASP.NET 控件?换句话说,是否有类似以下示例的控件:
HTMLTagControl list = new HTMLTagControl("ul");
list.ID = "editor-menu";
HTMLTagControl listItem = new HTMLTagControl("li");
listItem.Text = "List Item 1";
list.AppendChild(listItem);
我知道有包装器之类的,但与其驯服 ASP.NET 的复杂性,我宁愿从一开始就从简单性开始。