以编程方式更改c#中的元描述

时间:2015-02-09 10:15:21

标签: c# html asp.net .net

我在页面中有一个元描述标记,我正在以编程方式更改元描述标记的内容

 <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="" >

这是什么原因,我错过了什么?

2 个答案:

答案 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);