DNN 7 错误自定义模块

DNN 7 Error custom Module

我正在尝试编写自己的 DNN 7 模块来学习。

我实际上在关注 this tutorial

我已经创建了模块,但它显示了这个错误。

Error: HelloWorld is currently unavailable.
DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. --->
System.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.UI.Modules.ModuleHost.LoadModuleControl()
--- End of inner exception stack trace ---

这是我的ascx代码

<%@ Control Language="C#"
    AutoEventWireup="true"
    CodeFile="HelloWorld.ascx.cs"
    Inherits="DesktopModules.HelloWorld"
%>
<h1>Hello Dude</h1>
<p>Some text here</p>

还有我的ascx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DotNetNuke.UI.Modules;

namespace MyModules
{
    public partial class HelloWorld : ModuleUserControlBase
    {

    }
}

我在 google link 上搜索到以下代码,但我不确定这是解决方案(也不知道如何正确使用它)

override protected void OnInit(EventArgs e)
    {
        InitializeComponent();
        base.OnInit(e);
    }
    private void InitializeComponent()
    {
        this.Load += new System.EventHandler(this.Page_Load);
    }

您的 ascx 具有 Inherits="DesktopModules.HelloWorld",但您的命名空间和 ascx.cs 中的 class 是 "MyModules.HelloWorld"。另外,我会继承 DotNetNuke.Entities.Modules.PortalModuleBase 而不是 ModuleUserControlBase.

我强烈建议您重新考虑您的观点并开始使用 Chris Hammond 的模板或 DotNetNuclear 的模板。

如果没有别的原因,你可以盯着他们看,向他们学习。 dnnHero.com 上的 DotNetNuclear 教程和 Chris 在其网站和 dnnsoftware.com 上的教程也是一个很好的起点。

还有,不要让我忘记 Clint Patterson 在 dnnsoftware.com 上的一系列教程。基本但全面,涵盖所有基础并回答许多初学者类型的问题。