【问题标题】:dotnetnuke: can we create a master page?dotnetnuke:我们可以创建一个母版页吗?
【发布时间】:2009-07-30 00:18:44
【问题描述】:

我们可以在 dotnetnuke 中创建内容管理母版页吗?

例如。我希望右窗格和底部窗格进行内容管理,但在所有页面上显示相同的内容。

谢谢

【问题讨论】:

标签: dotnetnuke


【解决方案1】:

您所描述的本质上就是 DNN 所称的皮肤

DNN 皮肤实际上只是一个 ASP.NET 用户控件 (ascx),它指示页面范围或站点范围的外观,它为开发人员提供与母版页相同的功能,只是它与 DNN 相关联- 特定元素并使用一些特定于 DNN 的用户控件,例如菜单/导航、徽标、面包屑、登录/用户帐户链接等。

现在,为了增加在站点范围内提供内容管理功能的能力,您可以在皮肤中指定一个区域来放置模块(比方说,文本/HTML 模块)。该区域称为窗格。将模块添加到此窗格后,您可以在其设置中告诉它出现在每个页面上。这样,模块可以在任何页面上进行编辑,其更改将自动反映在所有页面上。

查看 DNN 的网站,因为它包含大量关于如何执行许多常见任务的文档:http://www.dotnetnuke.com/Support/Documentation/DownloadableFiles/tabid/478/Default.aspx。在技术文档部分下,您需要获取 Skinning 文档(我相信它是 PDF)。

【讨论】:

  • 我会评论说,如果你要在所有页面上添加内容,它应该是皮肤的一部分 - 当然,除非它像新闻或 rss 提要那样一直在变化
  • 这可能取决于您是否需要灵活地使用全局模块来拥有多个皮肤...
【解决方案2】:

通过选中模块设置中的复选框,可以将 DNN 模块设置为显示在所有页面上。但是 DNN 不使用母版页的概念。它在运行时在单个 aspx 页面上的容器中注入模块(用户控件)。

母版页将是对 DotNetNuke 的一个很好的补充,您无法替换页面单个区域中的内容。整个页面刷新。例如,如果您有一个菜单,并且您只希望您选择的内容出现在特定内容区域中而不刷新页面的其余部分,则您必须求助于尝试这样做但通常会失败的第三方模块。有“模块包装器”,但我测试过的所有模块都存在允许用户编辑内容的模块问题。编辑屏幕通常是在您编辑模块内容时启动的不同用户控制文件 (ascx)。由于页面刷新为新页面,因此您失去了位置。这些模块包装器适用于静态内容和其他一些控件,但不适用于所有控件。

可以使用 IFrame(DNN 有一个)来交换内容,但这并不能消除上面提到的问题。我在 DNN 上投入了大量资金,运营着 UCanUse.com 网站,所以这并不是对 DNN 的猛烈抨击。我只是想我会尝试详细回答这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    相关资源
    最近更新 更多