一个页面的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就行了。 另外如果网站较复杂,可以通过建立一个数据类进行设置,那就跟强大了!
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); } } }
/// <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, @"( )", "", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); return str; } //括号中为你想要过滤掉的字符。如@"( )"