我的ASP.NET Web应用程序的根文件夹中有一个web.config文件,用于注册项目中的所有用户控件。
〜/ web.config中
〜/控制/ MyReusableControl.ascx
〜/非/可重复使用/控制/ AnotherControl.ascx
〜/非/可重复使用/偶/更多/特定/控制/ MyThirdControl.ascx
<system.web>
<pages>
<controls>
<add tagPrefix="uc" tagName="MyReusableControl" src="~/Controls/MyReusableControl.ascx" />
<add tagPrefix="uc" tagName="AnotherControl" src="~/Non/Reusable/Controls/AnotherControl.ascx" />
<add tagPrefix="uc" tagName="MyThirdControl" src="~/Non/Reusable/Even/More/Specific/Controls/MyThirdControl.ascx" />
</controls>
</pages>
</system.web>
在root web.config文件中注册每个控件似乎是一个坏主意。我的大多数控件都是专门为单个页面或一组相关页面设计的。
我想在web.config文件中注册我的不可重用控件,该文件在逻辑上更接近实际使用控件的页面。
〜/控制/ MyControl.ascx
〜/ web.config中
<system.web>
<pages>
<controls>
<add tagPrefix="uc" tagName="MyReusableControl" src="~/Controls/MyReusableControl.ascx" />
</controls>
</pages>
</system.web>
〜/非/可重复使用/控制/ AnotherControl.ascx
〜/非/可重复使用/ web.config中
<system.web>
<pages>
<controls>
<add tagPrefix="uc" tagName="AnotherControl" src="~/Non/Reusable/Controls/AnotherControl.ascx" />
</controls>
</pages>
</system.web>
〜/非/可重复使用/偶/更多/特定/控制/ MyThirdControl.ascx
〜/非/可重复使用/偶/更多/特定/ web.config中
<system.web>
<pages>
<controls>
<add tagPrefix="uc" tagName="MyThirdControl" src="~/Non/Reusable/Even/More/Specific/Controls/MyThirdControl.ascx" />
</controls>
</pages>
</system.web>
我被允许这样做吗?我尝试将配置的相关部分移动到新的web.config文件,但这似乎打破了Web表单设计器,以便引用不可重用控件的页面。
元素'AnotherControl'不是已知元素。如果网站中存在编译错误,或者缺少web.config文件,则会发生这种情况。
显然,我的web.config文件都在那里。有趣的是,我的项目 编译,我的网页做显示我的用户控件。只是Visual Studio设计人员因上述错误而崩溃。