如何在asp.net中设置动态元标记?

tem*_*oti 2 asp.net meta-tags

我正在尝试将facebook标签添加到页面中.它们必须针对不同的用户有所不同,所以我尝试动态地添加它们.我有这样的代码:

<meta name="og:title" content="<%= GetSocialTitle() %>"/>
Run Code Online (Sandbox Code Playgroud)

但是在源页面中它没有发现并且看起来像:

<meta name="og:title" content="&lt;%= GetSocialTitle() %>"/>
Run Code Online (Sandbox Code Playgroud)

代替

<meta name="og:title" content="some title">
Run Code Online (Sandbox Code Playgroud)

我试图在代码中设置meta

HtmlMeta tag = new HtmlMeta();
tag.Name = "og:title";
tag.Content = GetSocialTitle();
Page.Header.Controls.Add(tag);
Run Code Online (Sandbox Code Playgroud)

但它抛出异常"控件集合无法修改,因为控件包含代码块(即<%...%>)".它真的包含,我无法取代它们.那么我该如何解决这个问题呢?

Ant*_*ula 12

如果你想使用后面的代码删除og:title元标记并将headat ="server"放在head标记中.

在标记中:

<head runat="server">
  ...
</head>
Run Code Online (Sandbox Code Playgroud)

和代码背后:

HtmlMeta tag = new HtmlMeta();
tag.Name = "og:title";
tag.Content = GetSocialTitle();
Page.Header.Controls.Add(tag);
Run Code Online (Sandbox Code Playgroud)

如果您不想使用代码,请从head标记中删除runat服务器:

<head>
  <meta name="og:title" content="<%= GetSocialTitle() %>"/>
  ...
</head>
Run Code Online (Sandbox Code Playgroud)