2012-03-29 4 views
1

私はページにFacebookのタグを追加しようとしています。ユーザーごとに異なる必要があるため、動的に追加しようとします。asp.netでダイナミックメタタグを設定する方法は?

<meta name="og:title" content="<%= GetSocialTitle() %>"/> 

しかし、ソースページにそれがないの覆いを取るにして次のようになります:私はこのようなコードを持っている私はメタを設定しようとした

<meta name="og:title" content="&lt;%= GetSocialTitle() %>"/> 

代わりの

<meta name="og:title" content="some title"> 

コードの後ろ

HtmlMeta tag = new HtmlMeta(); 
tag.Name = "og:title"; 
tag.Content = GetSocialTitle(); 
Page.Header.Controls.Add(tag); 

ただし、コントロールにコードブロックが含まれているため、コントロールコレクションを変更することはできません。

+0

関連:http://stackoverflow.com/questions/8104268/inline-code-in-head-tag-asp-net –

答えて

10

コードを使用したい場合は、そのog:titleメタタグを削除し、runat =を入力してください。ヘッドタグでの "サーバー" のマークアップで

:背後

<head runat="server"> 
    ... 
</head> 

やコード:

HtmlMeta tag = new HtmlMeta(); 
tag.Name = "og:title"; 
tag.Content = GetSocialTitle(); 
Page.Header.Controls.Add(tag); 

あなたが背後にあるコードを使用したくない場合は、headタグからラナサーバーを削除します。

<head> 
    <meta name="og:title" content="<%= GetSocialTitle() %>"/> 
    ... 
</head> 
0

もう1つの小さなトリックは、コンテンツのプレースホルダコントロールを使用することです。 だからあなたの場合、あなたはできる...

 <asp:PlaceHolder runat="server"> 
      <meta name="og:title" content="<%= GetSocialTitle() %>"/> 
     </asp:PlaceHolder> 

して、正しく翻訳しなければなりません。

HTH

デイブ

関連する問題