在级联web.config文件中注册用户控件

时间:2014-10-23 09:18:29

标签: asp.net webforms user-controls web-config

我的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设计人员因上述错误而崩溃。

0 个答案:

没有答案