目前我正在 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>
但有时我会忘记 checkin web.config。实际上,我通常会忘记它已经更改,跳过它,因为它经常破坏其他人设置的连接到本地数据库数据库副本的设置。
我想知道是否可以只指定整个 Controls 目录并自动注册所有控件
最佳答案
是和否。
基本上,您可以在 web.config 中注册所有用户控件。但是,如果您想在其他用户控件中使用任何用户控件,您就会遇到问题。
所以,如果您永远不会嵌套用户控件,那么您就可以开始了。但是如果您想要灵活地嵌套用户控件,您有几个选择:
- 将它们全部注册到 web.config 中,然后,如果是嵌套,则直接在父用户控件中注册要嵌套的控件。
- 正如 Bryan 上面提到的,将用户控件编译成程序集,并在 web.config 中引用它们。
- 这是最糟糕的选择,但基本上,您可以通过将控件放在子文件夹中来在 web.config 中注册所有用户控件时解决嵌套问题...这不是一个很好的选择。
- 另一种选择是对用户控件进行强类型化,也许可以通过为用户控件创建基类来实现。
基本上,这不是框架中的错误,而是将所有内容编译到单个程序集中的结果。该应用本质上无法区分用户控件。
关于asp.net - 在Web.config中是否可以注册指定目录中的所有用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/680519/