【问题标题】:How to add meta tag to ASP.Net content page如何将元标记添加到 ASP.Net 内容页面
【发布时间】:2011-09-06 02:58:30
【问题描述】:

我有几个内容页面挂在一个母版页上。我需要向其中一个内容页面添加一个刷新元标记,但我看不到我可以在哪里执行此操作。

任何帮助将不胜感激。

【问题讨论】:

    标签: asp.net meta-tags content-pages


    【解决方案1】:

    还没有尝试过刷新,但通常你可以像这样添加一个元标记:

       var keywords = new HtmlMeta { Name = "keywords", Content = "one,two,three" };
                    Header.Controls.Add(keywords);
    

    更新:可以这样。检查里克斯特拉尔 http://www.west-wind.com/weblog/posts/2006/Aug/04/No-more-Meta-Refresh-Tags

    【讨论】:

    • 我尝试按照上述方法执行以下操作: if( !IsPostBack ) { //Meta Tags. var metaTags = new HtmlMeta { Name = "W", Content = "Smart"}; Header.Controls.Add(metaTags); metaTags = new HtmlMeta { Name = "W.cg", Content = "afasfsa" }; Header.Controls.Add(metaTags);给我一个错误:无法修改控件集合。我们将不胜感激。
    【解决方案2】:

    This page 解释新功能:ASP.Net 4 为页面添加了 2 个新的元标记相关属性。它们可用于为关键字和描述设置元标记。

    您可以在后面的代码中设置它们:

    Page.MetaKeywords = "keyword1, keyword2, keyword3";
    Page.MetaDescription = "Example of new meta tag support in ASP.Net 4";
    

    也可以在@Page指令中设置:

    <%@ Page Language="C#" AutoEventWireup="true"
    MetaKeywords="keyword1, keyword2, keyword3"
    MetaDescription="Example of new meta tag support in ASP.Net 4"
    CodeFile="Default.aspx.cs" Inherits="_Default" %>
    

    这两种方法的输出都会呈现类似于以下内容的 html:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>
            ASP.NET 4 Meta Tag Support
        </title>
        <meta name="description" content="Example of new meta tag support in ASP.Net 4" />
        <meta name="keywords" content="keyword1, keyword2, keyword3" />
    </head>
    <body>
    </body>
    </html>
    

    【讨论】:

    • 你不能像这样添加刷新。
    • 不回答问题。
    【解决方案3】:
    protected void Page_Load(object sender, EventArgs e)
    {
      Page.Title          = "Title of page";
      HtmlMeta tag        = new HtmlMeta();
      tag.Name            = "description";
      tag.Content         = "description of page";
      Header.Controls.Add(tag);
      HtmlMeta tagKeyword = new HtmlMeta();
      tagKeyword.Name     = "keywords";
      tagKeyword.Content  = "keywords of page";
      Header.Controls.Add(tagKeyword );
    }
    

    (source url)

    【讨论】:

      【解决方案4】:

      您可以在 html 的 head 部分的母版页上添加内容占位符。然后,您可以在特定内容页面的此内容部分添加内容,并将其输出到页眉。

      【讨论】:

        【解决方案5】:

        在设计器页面中添加以下代码

            <meta id="metaDescription" runat="server" name="Description" />
        

        现在将以下代码添加到您的 .cs 页面

            Page.MetaKeywords = "keyword1, keyword2, keyword3";
            Page.MetaDescription = "Example of new meta tag";
        

        【讨论】:

        • 不需要将元标记添加到 Site.Master 以使代码后面工作。
        • 添加到 aspx 文件并保存后,会自动添加到 Visual Studio 的设计器文件中
        【解决方案6】:

        我发现的一种方法(我没有在此处列出)是使用 Literal 并用您想要的任何类型的元标记填充它。就我而言,我需要在没有母版页的情况下使用它,让 Facebook 识别缩略图、标题和描述:

        <head runat="server">
            <asp:Literal runat="server" ID="litMeta" />
        ...
        </head>
        

        代码隐藏:

        var img = "<meta property=\"og:image\" content=\"thumbnail.jpg\" />";
        var title = "<meta property=\"og:title\" content=\"Title\" />";
        var desc = "<meta property=\"og:description\" content=\"Description\" />";
        litMeta.Text = img + title + desc;
        

        【讨论】:

        • meta name="keywords" meta http-equiv="X-UA-Compatible" meta name="twitter:title" meta property="og:site_name" ?
        猜你喜欢
        • 2016-04-13
        • 1970-01-01
        • 2012-05-09
        • 1970-01-01
        • 1970-01-01
        • 2011-07-16
        • 2012-10-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多