#asp.net #c#-3.0
#asp.net #c #-3.0
Вопрос:
Я пытаюсь использовать usercontrols из другого проекта в моем asp.net 3.5 решение?
как я могу их использовать? что такое ссылка?
Комментарии:
1. google «asp.net повторное использование пользовательского контроля»
2. Google возвращает ссылку на эту страницу…
Ответ №1:
Обычно пользовательские элементы управления предназначены для использования в рамках одного проекта. Это связано с тем, что пользовательский элемент управления состоит из двух частей — файла разметки (ascx) и кода. Если вы скомпилируете проект в библиотеку, кодируемый класс будет упакован в dll, но не в ascx-части. Разметка (ascx) содержит фактическое дерево управления и, следовательно, без него пользовательский контроль не может быть использован. Итак, одним из решений для совместного использования пользовательских элементов управления является компиляция кода пользовательского элемента управления в библиотеку и копирование ascx-файлов в целевой проект.
Но лучшее решение — упаковать разметку пользовательского элемента управления (ascx) в качестве встроенного ресурса библиотечного проекта, а затем использовать пользовательский поставщик виртуального пути для загрузки его из ресурса. Смотрите Эту статью code-project, в которой описывается этот метод.
Комментарии:
1. нет ли более простого решения? 🙁
2. @user603007, самое простое решение — скопировать файлы пользовательского управления (код и разметку) в новый проект, который не поддерживается. Более удобный подход заключается в упаковке кода, а затем в совместном использовании разметки путем прямого копирования или общей папки (или общей папки в системе управления версиями, такой как VSS). Однако лучший подход — упаковать код и разметку вместе!
Ответ №2:
один из способов сделать это — создать 1. проект веб-приложения с общими usercontrols, 2. на который затем ссылаются другие проекты веб-приложений, которым необходимо использовать элементы управления 3. для каждого приложения / веб-сайта, использующего элементы управления, создайте каталог virt, указывающий на местоположение ascx, чтобы они могли быть включены в ваши страницы
конечно, при развертывании в производство возможны варианты … в зависимости от ваших предпочтений развертывания. Да, я согласен, что, как правило, если вы хотите использовать повторно, следует использовать серверные элементы управления / класс lib, но часто проще и быстрее реализовать сложный пользовательский интерфейс в usercontrols и поделиться, как указано выше. Также работает при повторном использовании usercontrols из другого существующего веб-приложения .. просто создайте виртуальный каталог, указывающий на местоположение ascx, и ссылайтесь на библиотеку dll приложения (или просто поместите в корзину)
Комментарии:
1. ах, хорошо .. VinayC описал почти то же самое, но на 13 минут раньше ))