如何将元标记添加到ASP.Net内容页面

25

我有几个内容页面挂在一个主页面上。 我需要在其中一个内容页面中添加一个"refresh"的元标记,但是我找不到可以添加的地方。

如果有帮助,将不胜感激。

6个回答

21

我没有尝试过使用刷新,但通常您可以添加类似于这样的meta标签:

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

更新: 可以通过以下方式实现。请查看Rick Strahl的博客


1
我尝试按照上述方式进行以下操作: 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); } 但是这给了我一个错误:无法修改控件集合。希望您能提供帮助。 - Ruruboy

17

这个页面解释了一个新特性:ASP.Net 4添加了两个新的与Meta标签相关的页面属性。它们可以用于设置关键词和描述的meta标签。

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

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>

1
你不能像这样添加刷新。 - Pleun
1
不回答这个问题。 - Stephen Kennedy

5
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的头部分的母版页中添加内容占位符。然后,您可以在特定内容页中向此内容部分添加内容,并将其输出到页面标题。


4
请在设计页面中添加以下代码。
    <meta id="metaDescription" runat="server" name="Description" />

现在请将以下代码添加到你的.cs页面中。
    Page.MetaKeywords = "keyword1, keyword2, keyword3";
    Page.MetaDescription = "Example of new meta tag";

2
不需要在Site.Master中添加元标记即可使代码后台工作。 - Brent
1
一旦您将其添加到aspx文件并保存,它将自动添加到Visual Studio中的设计器文件中。 - Saahithyan Vigneswaran

2

我发现一种方法可以做到这一点(在这里没有列出):使用Literal标记并填充任何类型的元标记。在我的情况下,我需要在没有主页的情况下使用它,以便Facebook识别缩略图图像、标题和描述:

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

CodeBehind:

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" Open Graph 网站名称元标签 - Kiquenet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接