Совместное использование ASCX-элементов управления между различными веб-приложениями - PullRequest
2 голосов
/ 15 апреля 2011

Можно ли совместно использовать веб-элементы управления (.ASCX-файлы) между различными веб-приложениями?

Указанные файлы являются частью другого веб-проекта.Я попытался отредактировать файл web.config для ссылки на файлы ascx, но я получил синтаксические ошибки, он говорит мне, что Iam не разрешено использовать «..» в этом пути.

<pages>
   <controls>
      <add tagPrefix="my" tagName="IntegerInput" src="~/../MyCommonProject/controls/basic/IntegerInput.ascx" />

Основная проблема, которую я хочуРешить эту проблему - это то, что у нас есть два приложения, которые имеют много общих функций, особенно веб-элементы управления.

Короче говоря, мы хотим извлечь все общие функции этих двух проектов в отдельный проект, поэтому мыВ разработке нет дублирующегося кода, но оба проекта должны иметь возможность развертываться отдельно как совершенно разные приложения, каждое из которых получает собственную копию этих элементов управления.

Как мы можем решить эту проблему?

Ответы [ 3 ]

3 голосов
/ 15 апреля 2011

Вы должны преобразовать пользовательский элемент управления в пользовательский серверный элемент управления.

MSDN имеет статью здесь .

2 голосов
/ 15 апреля 2011

Есть еще одно потенциальное решение:

Храните элементы управления в одном каталоге на одном веб-сайте, который вы считаете «основным»; затем создайте виртуальный каталог на другом сайте, который указывает на тот же физический каталог.

Это действительно может работать только для файлов ascx, но не для их кодов.

2 голосов
/ 15 апреля 2011

Я нашел два решения этой проблемы:

  • Создайте проект, который содержит ascx'ы и код. Исходные файлы этого проекта совместно используются (например, xcopies) с другими проектами, используя ascx'es. ( Блог )

  • Создайте библиотеку для пользовательских элементов управления, добавьте существующие ascx's и code-behind. Ссылка на эту библиотеку в веб-проектах. Недостаток: вы используете функциональность во время разработки, что означает: вы не видите ascx в режиме разработки. ( Блог )

Третье решение, предложенное @Forgotten Semicolon, заключается в преобразовании в элементы управления сервером. Этот метод также улучшает работу дизайнера.

...