【问题标题】:Custom-created DNN module can not be added to page无法将自定义创建的 DNN 模块添加到页面
【发布时间】:2010-08-03 01:58:57
【问题描述】:
我创建了一个自定义 DNN 模块,其中包含 2 个已成功安装到现有 DNN 网站的 .ascx 文件。但是当我将自定义创建的模块添加到页面时,什么也没有发生。同样在模块定义页面中,我的模块显示为“未使用”。
知道发生了什么吗?我检查了日志查看器,没有与我的模块相关的条目。
附加信息:Visual Studio 2008、.net 3.5、dnn 版本 05.01.04
【问题讨论】:
标签:
dotnetnuke
dotnetnuke-5
dotnetnuke-module
【解决方案1】:
您的问题很可能出在模块的模块定义中。您必须将其中一个控件列为“视图”控件类型。
一般来说,要专门显示一个用户控件(而不是页面上的其他模块),您可以请求以下 Url 格式:
example.com/pagename/tabid/xx/ctl/ctlkey/mid/yyy/default.aspx
在哪里:
xx 是标签
yy 是模块 ID
ctlkey 是模块控件定义中配置的控件的键。
每个 DNN 模块都有一种“视图”类型,这意味着 /ctl/ctlkey/mid/yyy 不需要包含在 URL 中 - 因此 example.com/pagename/tabid/xx/defualt 的标准 URL .aspx 将显示页面上的所有模块,特别是具有“视图”类型的控件。因此,“view”类型没有关联的键。
因此,要解决您的问题,请转到您的模块定义页面,单击模块,然后检查您是否列出了“视图”类型控件,并且该视图类型指向实际的模块控件。
最后,不要忘记它可能工作正常,但您的模块实际上并没有生成任何有效的 Html。这可以通过在控件的页面加载中放置一个断点并查看它是否被触发来检查。
【解决方案2】:
我会检查已注册控件的扩展。如果它们不是,那将是难题的第一块 - 如果它们是,您可能只想重新安装模块。
你有没有在其他地方使用过这个模块?