在asp.net中动态创建facebook share metatags [og:]

pat*_*anb 2 asp.net google-app-engine facebook facebook-graph-api google-plus

我正在尝试在我的网站的代码后面创建元标记,该网站有一个博客部分.所以每个博客都有自己的标题,形象.因此在代码背后创建.只是想确定这是否正确,Facebook/Google +会识别它.

代码背后

private void AddMetaTagsForPage(object tempObject)
      {
            string[] metaTags = {"og:title", "og:site_name", "og:type", "og:url", "og:image"};

            foreach(string str in metaTags)
            {
                  HtmlMeta tag = new HtmlMeta();

                  switch(str)
                  {
                        case "og:title":
                              tag.Name = str;
                              tag.Content = tempObject.ChallengeTitle;
                              Page.Header.Controls.Add(tag);
                              break;
                        case "og:site_name":
                              tag.Name = str;
                              tag.Content = "http://www.mysite.com";
                              Page.Header.Controls.Add(tag);
                              break;
                        case "og:type":
                              tag.Name = str;
                              tag.Content = "blog";
                              Page.Header.Controls.Add(tag);
                              break;
                        case "og:url":
                              tag.Name = str;
                              tag.Content = HttpContext.Current.Request.Url.AbsoluteUri;
                              Page.Header.Controls.Add(tag);
                              break;
                        case "og:image":
                              tag.Name = str;
                              tag.Content = String.Format("http://static.mountainwarehouse.com" + tempObject.ChallengeImageURL);
                              Page.Header.Controls.Add(tag);
                              break;
                  }
            }
      }
Run Code Online (Sandbox Code Playgroud)

生成的HTML

    <meta content="No appointment necessary. We hear you coming." name="og:title">
    <meta content="http://www.mysite.com" name="og:site_name">
    <meta content="blog" name="og:type">
    <meta content="http://dev.mysite.com/entries/viewentry.aspx?entryId=34"
    name="og:url">
    <meta content="http://static.mysite.com/Images/2a7803a2-e8f1-424c-9f53-3ddc1fe33c3e.jpg" name="og:image">
Run Code Online (Sandbox Code Playgroud)

在Facebook和谷歌+它说你必须有这种格式的元标记.

<meta content="No appointment necessary. We hear you coming." property="og:title">
Run Code Online (Sandbox Code Playgroud)

而不是属性关键字我有名字.我不知道如何在asp.net中创建它.它对Facebook有效吗?

请帮忙

小智 7

后面代码中的所有元标记都缺少您设置属性属性的部分.就像是

HtmlMeta tag = new HtmlMeta();
tag.Attributes.Add("property", "og:title");
tag.Content = "Title";
Page.Header.Controls.Add(tag);
Run Code Online (Sandbox Code Playgroud)

请参阅以下主题, 如何发送og:标题og:图像og:说明og:从C#到Facebook的URL信息