asp.net - 在Web.config中是否可以注册指定目录中的所有用户控件

标签 asp.net user-controls web-config

目前我正在 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 中注册所有用户控件。但是,如果您想在其他用户控件中使用任何用户控件,您就会遇到问题。

所以,如果您永远不会嵌套用户控件,那么您就可以开始了。但是如果您想要灵活地嵌套用户控件,您有几个选择:

  1. 将它们全部注册到 web.config 中,然后,如果是嵌套,则直接在父用户控件中注册要嵌套的控件。
  2. 正如 Bryan 上面提到的,将用户控件编译成程序集,并在 web.config 中引用它们。
  3. 这是最糟糕的选择,但基本上,您可以通过将控件放在子文件夹中来在 web.config 中注册所有用户控件时解决嵌套问题...这不是一个很好的选择。
  4. 另一种选择是对用户控件进行强类型化,也许可以通过为用户控件创建基类来实现。

基本上,这不是框架中的错误,而是将所有内容编译到单个程序集中的结果。该应用本质上无法区分用户控件。

还有更多信息 herehere. check out the comments on this one

关于asp.net - 在Web.config中是否可以注册指定目录中的所有用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/680519/

相关文章:

asp.net-mvc - 如何使用ASP.NET MVC根据网站部分设置不同的web.config默认错误页面

azure - 限制对暂存和开发插槽的访问

asp.net - 如何使用 System.Web.Mvc.SelectListItem

asp.net - ValidateRequest 设置为 true 时哪些字符或字符组合无效?

asp.net - Akamai 存在 ASPX 回发问题

c# - 如何从 WPF MVVM 中的用户控件创建 PDF

c# - 检查 datareader 是否为空或没有行?网络

c# - ASP.NET 通过其部分 ID 查找控件

c# 在 IE 中托管用户控件

visual-studio - Visual Studio 在构建时将 .config 文件复制到 bin,但 MSBuild 不会