代码之家  ›  专栏  ›  技术社区  ›  attack

具有干净输出的ASP.NET HTML控件?

  •  4
  • attack  · 技术社区  · 15 年前

    myStringBuilder.AppendLine("<ul id=\"editor-menu\">");
    myStringBuilder.AppendLine("<li>List Item 1</li>");
    myStringBuilder.AppendLine("</ul>");
    

    问题是,我宁愿使用ASP.NET的列表控件来实现此目的,因为有几行StringBuilder语法妨碍了代码的可读性。然而,ASP.NET控件倾向于输出复杂的HTML,具有唯一的ID、内联样式和偶尔的内联JavaScript块。

    我的问题是,是否有一个ASP.NET控件仅仅表示一个通用HTML标记?换句话说,是否存在类似以下示例的控件:

    HTMLTagControl list = new HTMLTagControl("ul");
    list.ID = "editor-menu";
    HTMLTagControl listItem = new HTMLTagControl("li");
    listItem.Text = "List Item 1";
    list.AppendChild(listItem);
    

    我知道有包装器之类的东西,但是我不想驯服ASP.NET的复杂性,我宁愿从简单开始。

    3 回复  |  直到 15 年前
        1
  •  8
  •   Josh    15 年前

    是否有一个ASP.NET控件 仅仅表示一个通用的HTML标记?

    HtmlGenericControl

    就你想要的而言,没有,但你可以很容易地绕过它:

    HtmlGenericControl list = new HtmlGenericControl("ul");
    list.ID = "editor-menu";
    HtmlGenericControl listItem = new HtmlGenericControl("li");
    listItem.InnerText = "List Item 1";
    list.Controls.Add(listItem);
    

    如果你真的需要着手解决裸机问题,那么你应该使用 HtmlTextWriter

        2
  •  2
  •   Joel Coehoorn    15 年前

    如果只想将stringbuilder的结果指定给空白控件,可以使用 <asp:Literal /> 控制这个。

        3
  •  1
  •   serdar serdar    15 年前

    我认为这样更好。