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