Asp.net 2.0 关于Header/title/Meta tages/Style操作的一点小技巧

设置Title :
  1. this.Header.Title="这是个Title测试";

 


如果用了MasterPage可以这样用:

  1. this.Page.Title = SiteMap.CurrentNode.Title; 

动态设置Style:

  1. Style style = new Style();
  2. style.ForeColor = System.Drawing.Color.Navy;
  3. style.BackColor = System.Drawing.Color.LightGray;
  4. // Add the style to the header for the body of the page
  5. this.Header.StyleSheet.CreateStyleRule(style, null"body");

动态加样式表:

  1. HtmlLink link = new HtmlLink();
  2. link.Attributes.Add("type""text/css");
  3. link.Attributes.Add("rel""stylesheet");
  4. link.Attributes.Add("href""~/newstyle.css");
  5. this.Header.Controls.Add(link);

动态加meta tags :

  1. // Render: <meta name="keywords" content="Some words listed here" />
  2. HtmlMeta meta = new HtmlMeta();
  3. meta.Name = "keywords";
  4. meta.Content = "Some words listed here";
  5. this.Header.Controls.Add(meta);
  6. // Render: <meta name="robots" content="noindex" />
  7. meta = new HtmlMeta();
  8. meta.Name = "robots";
  9. meta.Content = "noindex";
  10. this.Header.Controls.Add(meta);
  11. // Render: <meta name="date" content="2006-03-25" scheme="YYYY-MM-DD" />
  12. meta = new HtmlMeta();
  13. meta.Name = "date";
  14. meta.Content = DateTime.Now.ToString("yyyy-MM-dd");
  15. meta.Scheme = "YYYY-MM-DD";
  16. this.Header.Controls.Add(meta);

---------------------------------------------------------------------------------------------

ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description
2008年03月24日 星期一 10:59

   
  1.  // 设置关键字和页面描述
  2.     public void setMeta(string key,string des)
  3.     {
  4.         HtmlMeta
  5.             keywords = new HtmlMeta(), // keywords
  6.             description = new HtmlMeta(); // description
  7.         keywords.Name = "keywords";
  8.         keywords.Content = key;
  9.         description.Name = "description";
  10.         description.Content = des;
  11.         Page.Header.Controls.Add(keywords);
  12.         Page.Header.Controls.Add(description);
  13.     }
在ASP.NET编程中,由于经常采用一个页面通过不同的参数来显示不同的内容,因此常常需要实现动态输出不同的html header, 比如title, keywords, descrtptions等。

推荐的简单做法如下:


  1. protected void Page_Load(object sender, EventArgs e)
  2. {
  3.    //Page title
  4.    Page.Title = "This is a title and meta test page.";
  5.    //Encode/Content type
  6.    HtmlMeta encode = new HtmlMeta();
  7.    encode.HttpEquiv = "Content-Type";
  8.    encode.Content = "text/html; charset=utf-8";
  9.    Page.Header.Controls.Add(encode);
  10.    //Language
  11.    HtmlMeta lang = new HtmlMeta();
  12.    lang.HttpEquiv = "Content-Language";
  13.    lang.Content = "zh-cn";
  14.    Page.Header.Controls.Add(lang);
  15.    //Description
  16.    HtmlMeta desc = new HtmlMeta();
  17.    desc.Name = "Description";
  18.    desc.Content = "Test the meta controls";
  19.    Page.Header.Controls.Add(desc);
  20.    //Keyword
  21.    HtmlMeta keywords = new HtmlMeta();
  22.    keywords.Name = "keywords";
  23.    keywords.Content = "title,meta,test,page";
  24.    Page.Header.Controls.Add(keywords);
  25.    //Link/CSS
  26.    HtmlLink cssLink = new HtmlLink();
  27.    cssLink.Href = "MasterPage.css";
  28.    cssLink.Attributes.Add("rel""stylesheet");
  29.    cssLink.Attributes.Add("type""text/css");
  30.    Page.Header.Controls.Add(cssLink);
  31. }
浏览时输出的页面源码便会达到如下效果:

  1. <head><title>
  2. This is a title and meta test page.
  3. </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>
由于需要动态修改Header的Controls集合,因此如果放在用户自定义控件的Page_Onload事件中因为已经太迟而到处出现异常。对于希望用通用的控件实现这一功能的场合,建议包装一个普通的类,然后在MasterPager或者Page的Page_OnLoad中调用一下即可。
  1. #region PAGE HEAD
  2.         //Page meta information
  3.         public void BackHeadContent(HtmlControl htmlCtrl)
  4.         {
  5.             Content(htmlCtrl, "网站后台管理系统""~/CssStyle/SiteStyles.css");
  6.         }
  7.         public void HeadContent(HtmlControl htmlCtrl, string strPageTitle)
  8.         {
  9.             Content(htmlCtrl, strPageTitle, "~/CssStyle/Styles.css");
  10.         }
  11.        
  12.         private void Content(HtmlControl htmlCtrl, string strTitle,string cssFile)
  13.         {
  14.             //Title
  15.             HtmlTitle title = new HtmlTitle();
  16.             title.Text = strTitle;
  17.             htmlCtrl.Controls.Add(title);
  18.             //Link/CSSfile:
  19.             HtmlLink cssLink = new HtmlLink();
  20.             cssLink.Href = cssFile;
  21.             cssLink.Attributes.Add("rel""stylesheet");
  22.             cssLink.Attributes.Add("type""text/css");
  23.             htmlCtrl.Controls.Add(cssLink);
  24.             HtmlMeta
  25.             author = new HtmlMeta(), // author
  26.             copyright = new HtmlMeta(), // copyright
  27.             date = new HtmlMeta(), // date
  28.             keywords = new HtmlMeta(), // keywords
  29.             description = new HtmlMeta(), // description
  30.             robots = new HtmlMeta();// robots
  31.             author.Name = "Author";
  32.             author.Content = "Insus.NET";
  33.             copyright.Name = "Copyright";
  34.             copyright.Content = "Copyright 2008 Insus.NET";
  35.             date.Name = "date";
  36.             date.Content = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
  37.             keywords.Name = "keywords";
  38.             keywords.Content = "Insus ";
  39.             description.Name = "description";
  40.             robots.Name = "robots";
  41.             robots.Content = "all";
  42.             string[] InsusWords = "VISUAL STUDIO 2003,VISUAL STUDIO 2005,Microsoft SQL Server 2005,ASP.NET,ASP.NET 2.0,VB.NET,C#,AJAX,LINQ"
  43.               .Replace("//r"string.Empty)
  44.               .Replace("//n"string.Empty)
  45.               .Replace(">br />"string.Empty)
  46.               .Replace(","string.Empty)
  47.               .Replace("//'"string.Empty)
  48.               .Split(' ');
  49.             foreach (string word in InsusWords)
  50.                 keywords.Content += word + ",";
  51.             if (keywords.Content.ToString().Length > 1024)
  52.             {
  53.                 keywords.Content = keywords.Content.Substring(0, keywords.Content.IndexOf(" ", 1024));
  54.             }
  55.             description.Content = "This web site use asp.net2.0 and C# and Ajax technology";
  56.             if (description.Content.ToString().Length > 1024)
  57.             {
  58.                 description.Content = description.Content.Substring(0, description.Content.IndexOf(" ", 1024));
  59.             }
  60.             htmlCtrl.Controls.Add(author);
  61.             htmlCtrl.Controls.Add(copyright);
  62.             htmlCtrl.Controls.Add(date);
  63.             htmlCtrl.Controls.Add(keywords);
  64.             htmlCtrl.Controls.Add(description);
  65.             htmlCtrl.Controls.Add(robots);
  66.         }
  67.         #endregion PAGE HEAD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值