ASP.NET中动态设置Head<meta>区域标记

       一个页面的Head区的内容在SEO(搜索引擎优化)中起着非常重要的作用。尤其是Title,当然keywords和descrip tion的内容也是不容忽视的,尽管他们的地位已经降低了不少。搜索引擎的Spider(蜘蛛)从来就不喜欢千篇一律的内容。要夺取Spider的喜欢,就从你的Head区域开始吧,为每个页面设置与内容想符合的Head内容。

      ASP中动态设置Title、keywords、descrip tion很简单,跟一般的动态显示文章一样,<%=*** %>就可以了。ASP.NET中当然也可以这样做,或者你的整个页面都用Response.Write()输出,但是如果这样就没必要用ASP.NET了。 这里推荐使用两种以编程方式访问服务器上的Head区域标记的方法:

     1.使用Literal控件。Literal与Label非常相似,区别在于Label会在输出后加上标记,而Literal不会添加任何多余的标记。看代码:前台: 后台: ltPageTitle.Text = "页面标题"; ltPagekeywords.Text = "< name="keywords" content="关键词">"; ltPagedescrip tion.Text = "< name="descrip tion" content="内容描述">"; 效果一定会让你满意的!

     2.使用H t m l M e t a类 H t m l M e t a 是ASP.NET中新增的类,直接看代码: 前台: 后台: PageTitle.Text = “页面标题”;H t m l M e t a met1 = new H t m l M e t a(); met1.Name = "keywords";//设置m eta名称 met1.Content = “关键词”;//设置m eta内容

head1.Controls.Add (met1);H t m l M e t a met2 = new H t m l M e t a(); met2.Name = "descrip tion"; met2.Content = "内容描述"; head1.Controls.Add ( met2 );这样就搞定了,注意上面的title,它可以直接加个ID和runat="server"使之成为服务器变量,在后台设置他的Text就行了。 另外如果网站较复杂,可以通过建立一个数据类进行设置,那就跟强大了!

View Code
public partial class index : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //Description HtmlMeta desc = new HtmlMeta(); desc.Name = "Description"; desc.Content = "铁合金行业新闻、铁合金生产技术资料等。"; Page.Header.Controls.Add(desc); //Keyword HtmlMeta keywords = new HtmlMeta(); keywords.Name = "keywords"; keywords.Content = "硅锰 硅锰合金 锰"; Page.Header.Controls.Add(keywords); } } } 

 

View Code
       /// <summary>
        /// 过滤掉HTML标签
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public static string NoHTML(string str)
        {
            str = Regex.Replace(str, @"(\<.[^\<]*\>)", " ", RegexOptions.IgnorePatternWhitespace | RegexOptions.IgnoreCase);
            str = Regex.Replace(str, @"(\<\/[^\<]*\>)", " ", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
            str = Regex.Replace(str, @"(&nbsp;)", "", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
            return str;

        }
//括号中为你想要过滤掉的字符。如@"(&nbsp;)"
posted @ 2012-05-04 17:32  Flyyingzi77  阅读(674)  评论(0编辑  收藏  举报