zoukankan      html  css  js  c++  java
  • ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description!

    // 设置关键字和页面描述

     

    代码
     1 public void setMeta(string key,string des)
     2 {
     3 
     4     HtmlMeta keywords = new HtmlMeta(), // keywords
     5 
     6             description = new HtmlMeta(); // description
     7 
     8         keywords.Name = "keywords";
     9 
    10         keywords.Content = key;
    11 
    12         description.Name = "description";
    13 
    14         description.Content = des;
    15 
    16         Page.Header.Controls.Add(keywords);
    17 
    18         Page.Header.Controls.Add(description);
    19 
    20 }
    21 
    22 


    在ASP.NET编程中,由于经常采用一个页面通过不同的参数来显示不同的内容,因此常常需要实现动态输出不同的html header, 比如title, keywords, descrtptions等。

    推荐的简单做法如下:

    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>

    由于需要动态修改Header的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("&gt;br /&gt;", 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

  • 相关阅读:
    Android下加载GIF图片
    拍照、相册及裁剪的终极实现(一)——拍照及裁剪功能实现
    阿里巴巴矢量库
    ActiveAndroid 管理数据库
    利用box-shadow制作loading图
    适用于移动端的地址选择器
    常用的不易记忆的css自定义代码
    关于js中一个对象当做参数传递是按值传递还是按引用传递的个人看法
    JavaScript之函数柯里化
    CSS3实现图片渐入效果
  • 原文地址:https://www.cnblogs.com/smallmuda/p/1659329.html
Copyright © 2011-2022 走看看