带有 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();
.....
例如-这是我的元标记:
<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();
.....