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

meta tags with c# code content don't render

例如-这是我的元标记:

<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);
    }

您需要做的是为元标记指定一个 ID 和 runat="server" 并使用绑定来设置值。

例如:

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

在后面的代码中

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

.....