快速业务通道

在asp.net 2.0中结合母板页使用meta标签(扩展@Page指令)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19
ader.Controls.Add(tag); }

VB

Sub Page_Load()Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
  Dim tag As HtmlMeta = New HtmlMeta()
  tag.Name = "description"
  tag.Content = "My description for this page"
  Header.Controls.Add(tag)
End Sub

这种解决方法有一个问题,就是页的标题,meta描述,meta关键字都是相互关联的,所以我们想的是最好让标题和描述在同一个文件中指定。在Page_Load方法里确实可以很简单的在.aspx页中加入一个<script>标签,但是我想要一个更简单的设置和检查每一页标签的解决方案。

在接下来的方案中我们会看到如何通过扩展@Page指令给每一页加上meta标签。

解决方案

我创建了一个继承自System.Web.UI.Page的page基类,并且让我的内容页继承自我的BasePage类。BasePage类包含了在.aspx页中给header控件中增加meta标签的代码,当我们继承了BasePage的之后,这段代码就只需要在一个地方存在,而不用每一页都写一遍。

C#

using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
/**//// <SUMMARY>
/// 为了给内容页增加meta标签而扩展基类
/// </SUMMARY>
public class BasePage : Page
{
private string _keywords;
private string _description;
// 构造函数
// 增加一个Init的事件处理
public BasePage()
{
Init += new EventHandler(BasePage_Init);
}
// 页将使用这个基类初始化
// 如果可用则增加meta关键字和meta描述
void BasePage_Init(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(Meta_Keywords))
{
HtmlMeta tag = new HtmlMeta();
tag.Name = "keywords";
tag.Content = Meta_Keywords;
Header.Controls.Add(tag);
}
if (!String.IsNullOrEmpty(Meta_Description))
{
HtmlMeta tag = new HtmlMeta();
tag.Name = "description";
tag.Content = Meta_Description;
Header.Controls.Add(tag);
}
}
/**//// <SUMMARY>
/// 获取或设置页的meta关键字
/// </SUMMARY>
public string Meta_Keywords
{
get
{
return _keywords;
}
set
{
// 删掉多余的空格
// 译者注:\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [\f\n\r\t\v]。
_keywords = Regex.Replace(value, "\\s+", " ");
}
}
/**//// <SUMMARY>
/// 获取或设置页的meta描述
/// </SUMMARY>
public string Meta_Description
{
get
{
return _description;
}
set
{
// 删掉多余的空格
// 译者注:\s匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [\f\n\r\t\v]。
_description = Regex.Replace(value, "\\s+", " ");
}
}
}

VB

Imports System
Imports System.Web.UI
Imports System.Web.UI.HtmlControls
Imports System.Text.RegularExpressions
'' 为了给内容页增加meta标签而扩展基类
Public Class BasePageClass BasePage
Inherits Page
Dim _keywords As String
Dim _description As String
'' 页将使用这个基类初始化
'' 增加一个Init的事件处

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号