我在页面中有一个元描述标记,我正在以编程方式更改元描述标记的内容
<meta name="description" content=<%=getmeta()%> />
getmeta函数如下
public string getmeta()
{
return "this is a meta description's content";
}
当我的页面呈现时,它会像这样呈现无意义的元素
<meta name="description" content="this" is="" a="" meta="" description's="" content="" >
这是什么原因,我错过了什么?
答案 0 :(得分:-1)
首先,您的代码无法编译,因为您的方法末尾有一个额外的')':
return "this is a meta description's content");
但是,要回答您的问题,元标记的内容应放在双引号之间以便工作。
我建议您调整方法以返回包含双引号的字符串,但这需要转义双引号字符。
如果你修改你的方法如下,它应该工作(测试和验证):
public string getmeta()
{
return "\"this is a meta description's content\"";
}
HTML中的输出将是:
<meta name="description" content="this is a meta description's content" />
答案 1 :(得分:-1)
最佳方法是
protected void Page_Load(object sender, EventArgs e)
{
this.Page.Header.Controls.Add(new LiteralControl(@"<meta name='description' content='this is a meta description's content' />"));
}
或另一种方式是 -
- 在.aspx PlaceHoled
部分输入header
。
<asp:PlaceHolder id="MetaPlaceHolder" runat="server" />
C#代码:
HtmlMeta meta = new HtmlMeta();
meta.Name = "Name1";
meta.Content = "this is a meta description's content";
MetaPlaceHolder.Controls.Add(meta);