Хорошо, я уже почти пять часов бьюсь головой об этом, поэтому думаю, что пришло время спросить.
Я работаю над веб-приложением (.NET 4.0, C #, ASP.NET, AJAX, jQuery) в Visual Studio 2010 (Professional), которое состоит из нескольких частей. Давайте назовем их Мо, Ларри и Керли, каждый из которых находится в подпапке проекта. В настоящее время каждый из них имеет несколько пользовательских элементов управления, которые хранятся в подпапке с именем Controls в своей определенной папке, и все эти элементы управления объявлены в корневом web.config.
Итак, у нас есть что-то похожее на это:
WebApp - Web.config
--Mo
---- Управление
--Larry
---- Элементы управления
--Curly
---- Управление
Я пытаюсь улучшить "модульность" веб-приложения и хотел бы иметь возможность (пока безуспешно) переместить объявление пользовательского контроля во вложенные файлы Web.configs, чтобы на них нельзя было ссылаться глобально. Я попытался сделать это, просто переместив объявления управления в Web.configs, которые находятся в папках с именами Stooge. Intellisense жалуется, что они не являются известными элементами, но работает, пока я не пытаюсь внести любые изменения в страницы (страницы), которые используют элементы управления. Как только я это сделаю (даже что-то столь же простое, как нажатие Enter
для новой строки), дизайнер сходит с ума и удаляет ссылку на элемент управления.
Я пробовал web.configs в именованных папках, а также в папках sub Controls. Я также попытался включить пространства имен в web.configs на обоих уровнях.
Так, у кого-нибудь есть идеи?
Пример объявления web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<pages>
<controls>
<add tagPrefix="curlyctrl"
src="~/Curly/Controls/NuykNuyk.ascx"
tagName="joke"/>
</controls>
</pages>
</system.web>
</configuration>