asp.net动态添加Meta(author、description、keywords)
来源:互联网 发布:java wsdl import 编辑:程序博客网 时间:2024/05/01 17:57
简单的方法为:
protected void Page_Load(object sender, EventArgs e)
{
//Page title
Page.Title = "This is a title and meta test page.";
//Encode/Content type
HtmlMeta encode = new HtmlMeta();
encode.HttpEquiv = "Content-Type";
encode.Content = "text/html; charset=utf-8";
Page.Header.Controls.Add(encode);
//Language
HtmlMeta lang = new HtmlMeta();
lang.HttpEquiv = "Content-Language";
lang.Content = "zh-cn";
Page.Header.Controls.Add(lang);
//Description
HtmlMeta desc = new HtmlMeta();
desc.Name = "Description";
desc.Content = "Test the meta controls";
Page.Header.Controls.Add(desc);
//Keyword
HtmlMeta keywords = new HtmlMeta();
keywords.Name = "keywords";
keywords.Content = "title,meta,test,page";
Page.Header.Controls.Add(keywords);
//Link/CSS
HtmlLink cssLink = new HtmlLink();
cssLink.Href = "MasterPage.css";
cssLink.Attributes.Add("rel", "stylesheet");
cssLink.Attributes.Add("type", "text/css");
Page.Header.Controls.Add(cssLink);
}
浏览时输出的页面源码便会达到如下效果:
<head><title>
This is a title and meta test page.
</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="Content-Language" content="zh-cn" /><meta name="Description" content="Test the meta controls" /><<meta name="keywords" content="title,meta,test,page" /><link href="MasterPage.css" rel="stylesheet" type="text/css" /></head>
由于需要动态修改Head的Controls集合,因此如果放在用户自定义控件的Page_Onload事件中因为已经太迟而到处出现异常。对于希望用通用的控件实现这一功能的场合,建议包装一个普通的类,然后在MasterPager或者Page的Page_OnLoad中调用一下即可。
#region PAGE HEAD
//Page meta information
public void BackHeadContent(HtmlControl htmlCtrl)
{
Content(htmlCtrl, "网站后台管理系统", "~/CssStyle/SiteStyles.css");
}
public void HeadContent(HtmlControl htmlCtrl, string strPageTitle)
{
Content(htmlCtrl, strPageTitle, "~/CssStyle/Styles.css");
}
private void Content(HtmlControl htmlCtrl, string strTitle,string cssFile)
{
//Title
HtmlTitle title = new HtmlTitle();
title.Text = strTitle;
htmlCtrl.Controls.Add(title);
//Link/CSSfile:
HtmlLink cssLink = new HtmlLink();
cssLink.Href = cssFile;
cssLink.Attributes.Add("rel", "stylesheet");
cssLink.Attributes.Add("type", "text/css");
htmlCtrl.Controls.Add(cssLink);
HtmlMeta
author = new HtmlMeta(), // author
copyright = new HtmlMeta(), // copyright
date = new HtmlMeta(), // date
keywords = new HtmlMeta(), // keywords
description = new HtmlMeta(), // description
robots = new HtmlMeta();// robots
author.Name = "Author";
author.Content = "Insus.NET";
copyright.Name = "Copyright";
copyright.Content = "Copyright 2008 Insus.NET";
date.Name = "date";
date.Content = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
keywords.Name = "keywords";
keywords.Content = "Insus ";
description.Name = "description";
robots.Name = "robots";
robots.Content = "all";
string[] InsusWords = "VISUAL STUDIO 2003,VISUAL STUDIO 2005,Microsoft SQL Server 2005,ASP.NET,ASP.NET 2.0,VB.NET,C#,AJAX,LINQ"
.Replace("//r", string.Empty)
.Replace("//n", string.Empty)
.Replace(">br />", string.Empty)
.Replace(",", string.Empty)
.Replace("//'", string.Empty)
.Split(' ');
foreach (string word in InsusWords)
keywords.Content += word + ",";
if (keywords.Content.ToString().Length > 1024)
{
keywords.Content = keywords.Content.Substring(0, keywords.Content.IndexOf(" ", 1024));
}
description.Content = "This web site use asp.net2.0 and C# and Ajax technology";
if (description.Content.ToString().Length > 1024)
{
description.Content = description.Content.Substring(0, description.Content.IndexOf(" ", 1024));
}
htmlCtrl.Controls.Add(author);
htmlCtrl.Controls.Add(copyright);
htmlCtrl.Controls.Add(date);
htmlCtrl.Controls.Add(keywords);
htmlCtrl.Controls.Add(description);
htmlCtrl.Controls.Add(robots);
}
#endregion PAGE HEAD
建议将以上方法写为静态的,方便页面中调用
protected void Page_Load(object sender, EventArgs e)
{
//Page title
Page.Title = "This is a title and meta test page.";
//Encode/Content type
HtmlMeta encode = new HtmlMeta();
encode.HttpEquiv = "Content-Type";
encode.Content = "text/html; charset=utf-8";
Page.Header.Controls.Add(encode);
//Language
HtmlMeta lang = new HtmlMeta();
lang.HttpEquiv = "Content-Language";
lang.Content = "zh-cn";
Page.Header.Controls.Add(lang);
//Description
HtmlMeta desc = new HtmlMeta();
desc.Name = "Description";
desc.Content = "Test the meta controls";
Page.Header.Controls.Add(desc);
//Keyword
HtmlMeta keywords = new HtmlMeta();
keywords.Name = "keywords";
keywords.Content = "title,meta,test,page";
Page.Header.Controls.Add(keywords);
//Link/CSS
HtmlLink cssLink = new HtmlLink();
cssLink.Href = "MasterPage.css";
cssLink.Attributes.Add("rel", "stylesheet");
cssLink.Attributes.Add("type", "text/css");
Page.Header.Controls.Add(cssLink);
}
浏览时输出的页面源码便会达到如下效果:
<head><title>
This is a title and meta test page.
</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="Content-Language" content="zh-cn" /><meta name="Description" content="Test the meta controls" /><<meta name="keywords" content="title,meta,test,page" /><link href="MasterPage.css" rel="stylesheet" type="text/css" /></head>
由于需要动态修改Head的Controls集合,因此如果放在用户自定义控件的Page_Onload事件中因为已经太迟而到处出现异常。对于希望用通用的控件实现这一功能的场合,建议包装一个普通的类,然后在MasterPager或者Page的Page_OnLoad中调用一下即可。
#region PAGE HEAD
//Page meta information
public void BackHeadContent(HtmlControl htmlCtrl)
{
Content(htmlCtrl, "网站后台管理系统", "~/CssStyle/SiteStyles.css");
}
public void HeadContent(HtmlControl htmlCtrl, string strPageTitle)
{
Content(htmlCtrl, strPageTitle, "~/CssStyle/Styles.css");
}
private void Content(HtmlControl htmlCtrl, string strTitle,string cssFile)
{
//Title
HtmlTitle title = new HtmlTitle();
title.Text = strTitle;
htmlCtrl.Controls.Add(title);
//Link/CSSfile:
HtmlLink cssLink = new HtmlLink();
cssLink.Href = cssFile;
cssLink.Attributes.Add("rel", "stylesheet");
cssLink.Attributes.Add("type", "text/css");
htmlCtrl.Controls.Add(cssLink);
HtmlMeta
author = new HtmlMeta(), // author
copyright = new HtmlMeta(), // copyright
date = new HtmlMeta(), // date
keywords = new HtmlMeta(), // keywords
description = new HtmlMeta(), // description
robots = new HtmlMeta();// robots
author.Name = "Author";
author.Content = "Insus.NET";
copyright.Name = "Copyright";
copyright.Content = "Copyright 2008 Insus.NET";
date.Name = "date";
date.Content = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
keywords.Name = "keywords";
keywords.Content = "Insus ";
description.Name = "description";
robots.Name = "robots";
robots.Content = "all";
string[] InsusWords = "VISUAL STUDIO 2003,VISUAL STUDIO 2005,Microsoft SQL Server 2005,ASP.NET,ASP.NET 2.0,VB.NET,C#,AJAX,LINQ"
.Replace("//r", string.Empty)
.Replace("//n", string.Empty)
.Replace(">br />", string.Empty)
.Replace(",", string.Empty)
.Replace("//'", string.Empty)
.Split(' ');
foreach (string word in InsusWords)
keywords.Content += word + ",";
if (keywords.Content.ToString().Length > 1024)
{
keywords.Content = keywords.Content.Substring(0, keywords.Content.IndexOf(" ", 1024));
}
description.Content = "This web site use asp.net2.0 and C# and Ajax technology";
if (description.Content.ToString().Length > 1024)
{
description.Content = description.Content.Substring(0, description.Content.IndexOf(" ", 1024));
}
htmlCtrl.Controls.Add(author);
htmlCtrl.Controls.Add(copyright);
htmlCtrl.Controls.Add(date);
htmlCtrl.Controls.Add(keywords);
htmlCtrl.Controls.Add(description);
htmlCtrl.Controls.Add(robots);
}
#endregion PAGE HEAD
建议将以上方法写为静态的,方便页面中调用
页面中调用:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Meta.Content(this.Page.Header);
}
}
这里我将Content修改了,只保留了一个参数,而将其余动态直接封装在方法里,由方法直接调用返回动态内容!
- asp.net动态添加Meta(author、description、keywords)
- asp.net 动态设置标题title、meta(keywords、description)
- ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description!
- ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description!
- ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description!
- 【ASP.NET】对不同产品的动态网页添加不同的title、keywords、description
- .net 后台设置meta的属性(keywords,description)
- .net 后台设置meta的属性(keywords,description)
- ASP.NET后台动态修改母板页的Title,keywords,description属性
- <meta name="Keywords" description
- .NET动态设置和显示Titel、KeyWords、Description
- asp.net 动态添加title、meta tages、css
- yii2 中设置/添加 css、js、meta(keywords description) 等样式标签
- 动态修改aspx页面的meta标签中的 keywords 和description
- 网页动态关键字和描述(Keywords,description)
- SublimeText3 添加注释@Author/@Email/@DateTime/@Description
- .net页面自定义meta keywords
- C#在后台添加keywords和description
- 新的旅途开始了
- 浅谈404错误在SEO中如何处理
- C++中构造函数中调用虚函数的问题
- Spring原理概述
- 使用windows live writer离线写csdn博客
- asp.net动态添加Meta(author、description、keywords)
- GetMemory错误讲解(指针练习)
- 一篇不错的关于ogre相关技术的解释(转载)
- 解决第三方DLL没有强签名
- 永远 不要在构造或析构的过程中调用虚函数
- u-boot sdram调试为什么要skip_lowlevel_init的一点看法
- SQL 游标基本用法
- 网络山羊
- tuijian