【发布时间】:2009-07-30 00:18:44
【问题描述】:
我们可以在 dotnetnuke 中创建内容管理母版页吗?
例如。我希望右窗格和底部窗格进行内容管理,但在所有页面上显示相同的内容。
谢谢
【问题讨论】:
-
您可能想在 DNN 论坛上提问:dotnetnuke.com/Community/Forums/tabid/795/Default.aspx
标签: dotnetnuke
我们可以在 dotnetnuke 中创建内容管理母版页吗?
例如。我希望右窗格和底部窗格进行内容管理,但在所有页面上显示相同的内容。
谢谢
【问题讨论】:
标签: dotnetnuke
您所描述的本质上就是 DNN 所称的皮肤。
DNN 皮肤实际上只是一个 ASP.NET 用户控件 (ascx),它指示页面范围或站点范围的外观,它为开发人员提供与母版页相同的功能,只是它与 DNN 相关联- 特定元素并使用一些特定于 DNN 的用户控件,例如菜单/导航、徽标、面包屑、登录/用户帐户链接等。
现在,为了增加在站点范围内提供内容管理功能的能力,您可以在皮肤中指定一个区域来放置模块(比方说,文本/HTML 模块)。该区域称为窗格。将模块添加到此窗格后,您可以在其设置中告诉它出现在每个页面上。这样,模块可以在任何页面上进行编辑,其更改将自动反映在所有页面上。
查看 DNN 的网站,因为它包含大量关于如何执行许多常见任务的文档:http://www.dotnetnuke.com/Support/Documentation/DownloadableFiles/tabid/478/Default.aspx。在技术文档部分下,您需要获取 Skinning 文档(我相信它是 PDF)。
【讨论】:
通过选中模块设置中的复选框,可以将 DNN 模块设置为显示在所有页面上。但是 DNN 不使用母版页的概念。它在运行时在单个 aspx 页面上的容器中注入模块(用户控件)。
母版页将是对 DotNetNuke 的一个很好的补充,您无法替换页面单个区域中的内容。整个页面刷新。例如,如果您有一个菜单,并且您只希望您选择的内容出现在特定内容区域中而不刷新页面的其余部分,则您必须求助于尝试这样做但通常会失败的第三方模块。有“模块包装器”,但我测试过的所有模块都存在允许用户编辑内容的模块问题。编辑屏幕通常是在您编辑模块内容时启动的不同用户控制文件 (ascx)。由于页面刷新为新页面,因此您失去了位置。这些模块包装器适用于静态内容和其他一些控件,但不适用于所有控件。
可以使用 IFrame(DNN 有一个)来交换内容,但这并不能消除上面提到的问题。我在 DNN 上投入了大量资金,运营着 UCanUse.com 网站,所以这并不是对 DNN 的猛烈抨击。我只是想我会尝试详细回答这个问题。
【讨论】: