您的位置:首页 > 编程语言 > ASP

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

2012-05-04 17:32 387 查看
一个页面的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

/// <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;

}
//括号中为你想要过滤掉的字符。如@"( )"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: