2011-01-28 2 views
0

У меня был поиск, но, похоже, он действительно не нашел достойного ответа.Веб-контроль в библиотеке классов (C#/ASP.NET)

В основном у меня есть веб-приложение с пользовательским управлением в нем (с .ascx, .ascx.cs и .ascx.designer).

Пользовательский контроль ascx имеет некоторые javascript и базовую разметку.

Можно ли переместить всю вещь в библиотеку классов и вызвать ее из кода?

Единственная альтернатива, которую я вижу, - это создать все разметки/javascript в кодировке.

+0

Я нашел решение, реализующее то, что Крис называет «Полу-Хакки», и описал решение на моем блоге ([введение] (http://devio.wordpress.com/2011/02/11/creating-asp -net-user-control-libraries-in-visual-studio-2010 /), [реализация] (http://devio.wordpress.com/2011/02/11/migration-asp-net-user-controls-to -a-dll-in-visual-studio-2010 /)) – devio

+0

Я не тестировал это, но выглядит, может быть, это то, что вам нужно [Компилировать веб-пользовательский элемент управления в DLL] (http: // www. nathanblevins.com/2008/06/compile-a-web-user-control-into-a-dll-net-c/) –

ответ

2

У вас есть 3 варианта, насколько я знаю, с моим третьим вариантом меньше, чем полезно, поскольку я не помню, как это сделать.

«Лучший» вариант (IMHO): конвертировать его в серверный элемент управления (как вы сказали, все в коде позади). Это даст вам большую гибкость в долгосрочной перспективе, и вам не нужно хранить свой JavaScript в коде позади себя; вы можете сохранить его в любом файле ресурсов для загрузки, чтобы он не превращался в неприятный суп кода.

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

Опция «Полу-Хакки»: смотрите, код кода не всегда доступен для кода, содержащегося в проекте класса. Я считаю, что есть способ, хаки, связать их, но я не помню, как это сделать.

+0

Спасибо Крису, думая также о первом варианте, с файлом внешнего ресурса, связанным с javascript. – maxp

Смежные вопросы