Создание модуля C# в DNN

Я хочу встроить класс С# в модуль, чтобы я мог вызывать функции с помощью кнопок и событий щелчка. Я понятия не имею, как это сделать. Мне удалось написать класс, который я хочу использовать, но куда мне поместить код? Я создал модуль в DNN и получил это:

<%@ Control Language="C#" ClassName="MailingSystem" Inherits="DotNetNuke.Entities.Modules.PortalModuleBase" %>
<h1>Congratulations</h1>
<p>You have successfully created your module.  You can edit the source of the module control by selecting the View Source Action from the Action Menu.</p>

<script runat="server">

</script>

Я не могу поместить сюда свой код, я получаю всевозможные ошибки о запрещенных пространствах имен, не могу импортировать классы с «Использованием» и так далее. Так что я должен делать? Мой класс работает, мне просто нужно обернуть его в модуль и поместить на страницу DNN.


person Lifes    schedule 15.04.2011    source источник


Ответы (4)


Лучше начать с шаблона модуля DotNetNuke, например, один. Это не так просто, как создать страницу aspx.

person kgiannakakis    schedule 15.04.2011
comment
Спасибо за ссылку, я смог ее скачать и работаю над тем, чтобы разместить ее на своем веб-сайте DNN, но я все еще не уверен, где мне следует вводить свой собственный код... - person Lifes; 15.04.2011
comment
Я также застрял в том, как добавить его. Это для проекта и у нас уже есть сайт DNN, я создал Модуль по инструкции как отдельный проект. Как я могу ссылаться на это? Когда я пытаюсь создать модуль из манифеста, я вижу только файлы в проекте DNN моей команды... как мне добавить этот отдельный модуль? - person Lifes; 15.04.2011

просто вы можете дважды щелкнуть часть дизайна страницы, затем на странице появится раздел загрузки страницы, и вы можете поместить туда свой код С#.

person Mohammad Dehghani    schedule 04.02.2012

Вы можете сделать что-то вроде этого:

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        /// code goes here
    }
</script>
person Maciej    schedule 15.05.2012

Если вы не хотите идти по всему маршруту шаблона модуля. Сделайте следующее.

  1. Создайте webusercontrol (.ascx)
  2. Перейдите к коду файла (.ascx.cs) и измените класс, чтобы он наследовал от DotNetNuke.Entities.Modules.PortalModuleBase (вам нужно будет добавить DotNetNuke.dll в качестве ссылки)
  3. Добавьте любые элементы управления, которые вы хотите, в ascx и прикрепите любые обработчики событий. Я предпочитаю делать это в методе инициализации страницы

В ASCX:

    <asp:Button ID="btnButton" Text="Click me" runat="server" />

В коде программной части:

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);
        btnButton.Click += btnButton_Click;
        // OR
        btnButton.Click += (sender, e)=> { // Button clicked! Do something };

    }

    protected void btnButton_Click(object sender, EventArgs e)
    {
         // Your button has been clicked, Do something

    }
  1. Скомпилировать код

  2. Получите файл [yourprojectname].dll из папки bin вашего проекта и скопируйте его в папку bin DNN. Затем скопируйте ascx управления модулем в специальную папку в папке DNN DesktopModules.

Пример пути: DesktopModule > YourProjectName > [YourASCXName].ascx

  1. Войдите в DNN, перейдите в «Хост»> «Расширения» и нажмите «Добавить расширение». Пройдитесь по мастеру, убедившись, что тип вашего расширения установлен на «Модуль» (в DNN есть много разных типов расширений).

  2. После добавления вы вернетесь на страницу расширений модуля. Прокрутите вниз и найдите расширение вашего модуля. Нажмите «Изменить», перейдите к определениям модуля и добавьте определение модуля со значимым именем.

Пример: ИмяВашегоПроектаMainView

  1. Затем добавьте файл ASCX в качестве представления к этому расширению модуля. Нажмите «Сохранить», и вы закончили настройку.

Вы должны иметь возможность поместить свой (ОЧЕНЬ БАЗОВЫЙ) модуль на страницу и использовать его!

person lukejkw    schedule 23.02.2016