带有c#代码内容的元标记不会呈现

时间:2015-12-07 14:52:32

标签: c# webforms meta-tags meta

例如 - 这是我的元标记:

<meta name="keywords" content="<%=eSeo.keyWords%>" />

它想成为 -

<meta name="keywords" content="food,dogs,cats" />

我可以通过浏览器中的页面源查看它:

<meta name="keywords" content="<%=eSeo.keyWords%>" />

作为一个字符串..

我尝试从后面的代码更新元标记,但它也不起作用:

protected override void OnPreRender(EventArgs e)
    {
        if (!IsPostBack)
        {
            HtmlHead pHtml = Page.Header;

            foreach (HtmlMeta metaTag in pHtml.Controls.OfType<HtmlMeta>())
            {
                if (metaTag.Name.Equals("keywords", StringComparison.CurrentCultureIgnoreCase))
                {
                    metaTag.Content = eSeo.keyWords;
                    break;
                }
            }
        }
        base.OnPreRender(e);
    }

1 个答案:

答案 0 :(得分:0)

您需要做的是给元标记一个ID和runat =&#34;服务器&#34;并使用绑定来设置值。

例如:

<meta ID="MetaKeywords" runat="server" name="keywords" content="<%#eSeo.keyWords%>" />

并在代码中

protected void Page_Init(object sender, EventArgs e)
{
MetaKeywords.DataBind();

...