动态添加META、LINK等标签

    不想往每个ASPX页面手动添加META,也不想在每个页面的PAGE_LOAD中添加处理方法,偶目前找了两个方案.

    方案一:可以自己手动添加一个类PageBase,让该类继承System.Web.UI.Page.在PageBase中重写OnLoad方法

代码如下:

 

ContractedBlock.gif ExpandedBlockStart.gif Code
 protected override void OnLoad(EventArgs e)
    {
        
base.OnLoad(e);
        HtmlMeta meta 
= new HtmlMeta();
        meta.Name 
= "keywords";
        meta.Content 
= "关健字";

        HtmlHead head 
= (HtmlHead)Page.Header;
        head.Controls.Add(meta);

    }

最后,在新建的每个一ASPX页面的代码文件中的类都继承PageBase类.如果每次去修改默认的继承类嫌麻烦,就用方案二了.

 

      方案二:由于前面有用过ASP.NET 2.0自带的URL重写特性.然后添加一个适配类动态地改变FORM的ACTION属性值,在URL Rewrite后保持PostBack地址不变.于是也想添加一个对HtmlHead的适配类来改变HtmlHead里面的生成行为.

我的具体做法如下:(ASP.NET的具体编译原理与过程不是很熟,有可能无法解释其中的道理)

1.添加一个浏览器文件Head.browser,其配置的内容如下:

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
<!--
可在 <windir>\Microsoft.NET\Framework\<ver>\CONFIG\Browsers 中找到现有的浏览器定义
-->
<browsers>
 

  
<browser refID="Default">
  
    
<controlAdapters>
      
<adapter controlType="System.Web.UI.HtmlControls.HtmlHead"
               adapterType
="HeadRewriterControlAdapter" />
    
</controlAdapters>
  
</browser>
</browsers>

 

2.添加一个HeadRewriterControlAdapter类,该类继承于System.Web.UI.Adapters.ControlAdapter;

3.在HeadRewriterControlAdapter类中重写OnLoad方法,即可达到目的,代码同方法一中重写OnLoad方法的代码一致.

 

 

   今天是七夕,愿天下有情人终成眷属 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/xiaorong/archive/2008/08/07/1262744.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值