ASP.net有效地呈现元标记

时间:2011-03-07 20:41:12

标签: c# asp.net servercontrols

HTML:

<meta name="description" runat="server" id="MetaDescription" content="" />

代码隐藏:

MetaDescription.Attributes["content"] = ThisBlog.MetaDescription;

这呈现为:

<meta id="HeadContent_MetaDescription" name="description" content="My page description"></meta>

根据this answer,它需要没有ID属性,并以/>关闭。

如何以这种方式渲染?

2 个答案:

答案 0 :(得分:3)

我仍然在.net 3.5上,但是把它放在Page_Load中,它会做你需要的:

HtmlMeta keywords = new HtmlMeta();
keywords.Name = "keywords";
keywords.Content = "one two trhee;
Header.Controls.Add(keywords);

PS:示例是针对关键字标签,但结果是相同的。

答案 1 :(得分:3)

您应该从id中删除<meta>属性,这意味着id无法从服务器端访问该控件,而是可以动态创建控件然后添加到页面:

HtmlMeta meta = new HtmlMeta();
meta.Name = "keywords";
meta.Content = ThisBlog.MetaDescription;
this.Header.Controls.Add(meta);