思维的乐趣

Enjoy it
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.NET中将自定义控件注册到web.config的用法

Posted on 2010-05-26 11:09  szh114  阅读(1456)  评论(0编辑  收藏  举报

昨天在网上下载到一份源码,发现其中有一个地方我不明白,就是用户自定义控件没有用Register指令引入,就能直接拿来用,并且编译正常。我也觉得这样做很好,要不然一个自定义控件要是经常用,而每个用到的页面中又要引用一番,很是麻烦,但现在的问题是我不清楚他是怎么做到的。然后我在整个project里面搜索那个控件名字段,发现在web.config中有一段代码引用了这些,于是我上网搜了一下,发现自定义控件是可以注册到web.config中的,然后就可以直接拿来用,而不用每次用到就Register一番。

 

这个新功能是ASP.NET 2.0中引入的,就是:

只要在你的应用的web.config 文件的新的 pages->controls 部分声明一次即可:


<?xml version="1.0"?>

<configuration>

  <system.web>
   
    <pages>
      <controls>

        <add tagPrefix="scottgu" src="~/Controls/Header.ascx" tagName="header"/>
        <add tagPrefix="scottgu" src="~/Controls/Footer.ascx" tagName="footer"/>
        <add tagPrefix="ControlVendor" assembly="ControlVendorAssembly"/>
      </controls>
    </pages>

  </system.web>

</configuration>

 

(ASP.NET中“~”符号意思是“从应用的根路径来定位”,它提供了一个很好的方法来避免在你的编码里到处使用“..”。)

 

然后我马上进行了实验,结果第一次失败了,我把ASCX控件文件跟ASPX页面文件放在默认的同一个目录下,但BUILD的时候提示说好像不可以,然后我又将ASCX移到一个新文件夹中,然后在web.config中也相应改变了设置,就可以了!