目前我正在Web.config中单独注册每个用户控件
<pages validateRequest="false"> <controls> <add tagPrefix="cc1" src="~/Controls/MyUserControl1.ascx" tagName="MyUserControl1"/> ... <add tagPrefix="cc1" src="~/Controls/MyUserControlN.ascx" tagName="MyUserControlN"/> </controls> </pages>
但有时我忘了检查web.config.实际上,我经常忘记它已更改跳过它,因为它经常会破坏其他设置为连接到本地db DB副本的设置.
我想知道是否可以只指定整个Controls目录并自动注册所有控件
@H_403_8@解决方法
是的,不是.
基本上,您可以在web.config中注册所有用户控件.但是,如果要在其他用户控件中使用任何用户控件,则会遇到问题.
所以,如果你永远不会嵌套用户控件,那么你很高兴.但是如果你想要灵活地嵌套用户控件,你有几个选择:
>在web.config中注册它们,然后,在嵌套的情况下,将您直接嵌套的控件注册到父usercontrol中.
>正如上面提到的Bryan,将您的usercontrol编译成一个程序集,并在web.config中引用它们.
>这是最糟糕的选择,但基本上你可以通过将控件放在子文件夹中来注册web.config中的所有用户控件来解决嵌套问题…这不是一个很好的选择.
>另一个选择是强烈键入您的用户控件,可能是通过为您的用户控件创建基类.
基本上它不是框架中的错误,而是将所有内容编译到单个程序集中的结果.该应用程序基本上无法区分用户控件.
还有一些信息here和here. check out the comments on this one
@H_403_8@ @H_403_8@