0

私は.NET 3.5に対して構築しているヘッドにデータをメタデータしたいユーザーコントロールに取り組んでいます。メソッド呼び出しの結果として、メタタグのコンテンツの一部を動的にしたいです。ユーザーコントロールで行っていることの例を次に示します。

<meta id = "metaOgUrl" property="og:url" content="<%=this.GetOgImage()%>" runat = "server"/> 

コードビハインドの GetOgImage():

public string GetOgImage()
{
    if (entry != null)
    {
        return entry.PhotoUrl; 
    }
    return String.Empty;
}

シンプルでいいでしょ?問題は、ブラウザでコンテンツ値としてレンダリングされたメソッド呼び出し自体が表示されていることです。

<meta id="tmpl_appmain_block1_ctl00_metaOgUrl" content="<%=this.GetOgImage()%>" property="og:url">

誰かが私がここで間違っていることを教えてもらえますか? 私が読んだことによると、これはうまくいくはずです。どんな助けでも大歓迎です、どうもありがとう!

4

1 に答える 1

1

はい、 head タグのコードはおかしくなりますが、 runat=server 属性を削除して、ハックとしてこれを行うことができます:

<meta id="metaOgUrl" property="og:url" content="<%= "" + GetOgImage() %>" />

または、runat=server のままにして content 属性を削除し、コード ビハインドで設定します。

<meta id="metaOgUrl" runat="server" property="og:url" />

protected void Page_Load(object sender, EventArgs e) {
    metaOgUrl.Attributes["content"] = GetOgImage();
}
于 2012-09-19T21:30:26.537 に答える