动态 og 元内容 asp.net webforms master 和 content page

问题描述

我有一个带有 head 标签的母版页,它使用一些 标签来加载一些内容,如 css、js 和 favicons。 我希望动态构建 og内容,如

<Meta property="og:title" .../>,<Meta property="og:description" .../> 
<Meta property="og:image" .../> etc

这些数据内容会从每个内容页生成,并希望放在页面头部元素

到目前为止我尝试过的是 - 在母版页加载事件中

System.Web.UI.HtmlControls.HtmlMeta tag = new System.Web.UI.HtmlControls.HtmlMeta();
tag.Name = "og:title";
tag.Content = "blah";
Page.Header.Controls.Add(tag);

但它显示错误,我已经在我的 head 标签中使用了 块。

样本头部元素

<head runat="server">
<Meta charset="utf-8" />
<Meta http-equiv="X-UA-Compatible" content="IE=edge" />
<Meta name="viewport" content="width=device-width,initial-scale=1.0" />
<Meta name="format-detection" content="telephone=no">
<Meta name="apple-mobile-web-app-capable" content="yes">
<Meta name="author" content="">
<link rel="stylesheet" href="<%= Page.ResolveClientUrl("~/plugins/font-awesome/css/font-awesome.min.css?v=534521") %>">
</head>

希望它清楚。

解决方法

修复错误的一种可能性:在头部,将 <%= 更改为 <%#,并在 (Page_Load) 后面的代码末尾添加

Page.Header.DataBind();

另一种可能性是将链接包装在 Placeholder 控件中。