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

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

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

Я хочу встроить класс C # в модуль, чтобы я мог вызывать функции с помощью кнопок и событий щелчков. Я понятия не имею, как это сделать. Мне удалось написать класс, который я хочу использовать, но куда мне поместить код? Я создал модуль в 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>

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

Ответы [ 4 ]

1 голос
/ 04 февраля 2012

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

1 голос
/ 15 мая 2012

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

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        /// code goes here
    }
</script>
1 голос
/ 15 апреля 2011

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

0 голосов
/ 23 февраля 2016

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

  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 вашего проекта и скопируйте его в папку DNN bin. Затем скопируйте свой модуль управления ascx в специальную папку в папке DNM DesktopModules

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

  1. Войдите в DNN, перейдите в Host> Extensions и нажмите add extension. Пройдите мастер, убедившись, что в качестве типа расширения указан модуль (существует множество различных типов расширений в DNN).

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

Пример: YourProjectNameMainView

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

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

...