gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 02:26:22 25 4
gpt4 key购买 nike

我正在开发一个 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 block 。

我的问题是,是否存在仅表示通用 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 的复杂性,我宁愿从一开始就从简单开始。

最佳答案

is there an ASP.NET control which merely represents a generic HTML tag?

是的,它叫做 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类而不是 StringBuilder,因为它更适合抽取原始 HTML。

关于具有干净输出的 ASP.NET HTML 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1252901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com