如何在ASP.NET中以编程方式创建<h1>标签?

22

我正在尝试在我的代码后端动态生成一些HTML,以用于我正在设计的用户控件。

我一直在寻找方法,但似乎无法弄清楚如何为我将显示的内容动态生成一些h1标签。

它只是一个设置了特殊属性的标签吗?


你在 DataBound 控件中吗? - Steve B
11个回答

35
var h1 = new HtmlGenericControl("h1");
h1.InnerHtml = "header content";

@umair.ali 你可以将它添加到任何“控件”集合中,服务器会正确地呈现它。 - Mike Corcoran

10

您也可以使用:

<h1 runat="server" />

9
您可以使用如下所示的标签或文本控件:

Label1.Text = "<h1>HI All</h1>";

或者
string heading = "HI All";
Label1.Text = string.Format("<h1>{0}</h1>", heading);

当然,它可以如此简单...我为什么忘记做了那个...谢谢。 - Laurence

2

如果你拥有这样的一个服务器控件,

<div class="cls" runat="server" id="MyServerControlDiv"></div>

使用 HtmlGenericControl
var h1 = new HtmlGenericControl("h1");
h1.InnerHtml = "header content";
MyServerControlDiv.Controls.Add(h1);

使用 LiteralControl

MyServerControlDiv.Controls.Add(new LiteralControl("<h1>"));
MyServerControlDiv.Controls.Add(new LiteralControl("header content"));
MyServerControlDiv.Controls.Add(new LiteralControl("</h1>"));

2
你可以轻松地通过以下方式实现:
literall.Text ="<h1>ABCD</h1>";

1
个人而言,我更喜欢为此创建一个类。
public class H1: HtmlGenericElement 
{
    public H1(): base("h1") { }
}

或许吧。
public class H: HtmlGenericControl
{
    public H(int size): base("h" + size) { }
}

1

使用 Literal 控件,Literal1.Text = "<h1>" + texttodisplay + "</h1>";



0

假设您的设计中有一个 ASP 占位符:

PlaceHolder placeHolder1 = new PlaceHolder();

string yourText = "Header Text";
Label myLabel = new Label();
myLabel.Text = "<h1>" + yourText + "</h1>";

PlaceHolder1.Controls.Add(myLabel);

或者

PlaceHolder1.Controls.Add(new LiteralControl ("<h1>")) // and likewise
for </h1>.

0

如果您不需要插入任何子控件,那么使用通用的HTML控件或文字控件就可以了。但是,如果您需要添加一个子控件,例如标签,那么您需要像下面这样创建您的标题作为Web控件:

WebControl H2Header = new WebControl(HtmlTextWriterTag.H1);

然后,您可以像这样附加子控件:

Label labHeader = new Label() { Text = "Some Header Text" };
H2Header.Controls.Add(labHeader);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接