Пользовательский класс в модуле DotNetNuke - PullRequest
0 голосов
/ 21 марта 2011

Я знаю, что это можно сделать, так как есть другие модули, которые имеют это, но я просто не заставляю его работать.

Я создал специальный модуль для сайта DotNetNuke. Я хочу иметь возможность создать объект класса в модуле для хранения информации об этом объекте. Я могу создать объект, и все соответствует. Но когда я иду использовать объект в коде позади, он заявляет, что объект не определен. Я не совсем уверен, куда идти отсюда.

Это начало View.ascx.vb:

Namespace Modules.VacationForms

Public MustInherit Class View
    Inherits PortalModuleBase

Это начало класса объекта:

Namespace Modules.VacationForms

Public MustInherit Class Vacation

Я действительно не уверен, почему это не работает. Я загрузил другой код модуля для сравнения, и насколько я могу судить, все то же самое. Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 21 марта 2011

Вы используете проект веб-сайта или проект веб-приложения? Проект веб-приложения позволит вам скомпилировать весь ваш код вместе (единственной проблемой здесь может быть настройка корневого пространства имен в вашем проекте, но, если оба класса находятся в одном проекте, это не должно быть). Если вы находитесь в проекте Web Site (например, разрабатываете непосредственно в решении DNN), то ваш код не будет скомпилирован в традиционном смысле, но будет скомпилирован DNN по требованию. Это делается только для кода, лежащего в основе файлов, связанных с запрошенными элементами управления / страницами (например, вашим View.ascx.vb), и файлов кода в папке App_Code. Я полагаю, что вы зависаете в том, что файл кода Vacation class 'не находится в папке App_Code.

0 голосов
/ 22 марта 2011

Похоже, вы не используете проект веб-приложения для разработки модулей.Проще всего установить шаблоны разработки модулей (с сайта dotnetnuke.codeplex.com скачать стартовый пакет вашей версии dnn).

Если ваш модуль слишком прост, и вы не хотите этого делать, ИЛИ не хотите устанавливать шаблоны на вашем компьютере, вы можете сделать следующее:

  • Если вы используете версию vs, которая по умолчанию не использует WAP, получите установку из Интернета.
  • создайте новую папку для вашего модуля dnn в каталоге DesktopModules в корневом каталоге
  • добавьте новый WAPпроект в этой папке.
  • удалите web.config из этой папки, перейдите в свойства и укажите выходной каталог сборки в каталоге bin вашего сайта dnn (../../bin будет работать большую часть времени)
  • Один разс этим покончено, весь ваш код начнет работать как положено.
  • Хорошо, что все ваши файлы .vb и .ascx.vb будут скомпилированы в одну dll, которую вы легко сможете распространять как пакет.

Надеюсь, это поможет

...