gpt4 book ai didi

c# - 我可以在不将页面限制为特定模块的情况下呈现 DotNetNuke 模块的控件吗?

转载 作者:太空宇宙 更新时间:2023-11-03 20:26:56 24 4
gpt4 key购买 nike

我正在开发一个由多个不同屏幕组成的 DotNetNuke 模块,每个屏幕都有自己的一组用户界面交互。我决定通过将每个屏幕放在不同的模块控件中来处理这个问题。我能找到加载该控件的唯一方法是通过以下方式为链接提供一个 URL:

Globals.NavigateURL(Constants.LicenseDetailControl, "clientId=" + _clientId, "licenseId=" + data.Id, "mid=" + this.ModuleId);

不幸的是,由于 mid=xxx 查询参数,这将页面限制为仅呈现此特定模块。但是,如果我不提供模块 ID 参数,那么我的控件根本不会呈现并且页面为空白。

有没有什么方法可以在不强制页面只显示一个模块的情况下呈现特定控件?

最佳答案

Is there any way to render a specific control without forcing the page to only display one module?

答案是否定的。

通过指定ctl类型和模块Id来渲染特定的控件,通常用于编辑和管理模块,它们专门从页面中排除其他模块。

正如 Mitchel 所回答的,您必须自己进行动态加载。还有其他模块可以执行此操作,您可以复制模式。许多 Ventrian 模块使用他们自己的 Url 规范来加载不同的控件(这意味着不使用 Url 中的/ctl/xx 和/mid/yy,而是用你自己的定义替换它,比如 'view=x')

但是,您也可以考虑将您的模块分布在不同的页面上,这样一个 DNN 页面有一个“列表”,另一个有一个“ View ”。这提供了一组更合乎逻辑的 Urls(想象一个名为/licences 的许可证列表页面,然后是一个名为/licence/licenceId/xx 的许可证详细信息页面)。它还允许在整个站点中更灵活地使用该模块。但它确实使安装不太直观,因为它只是将所有模块转储到一个页面上。

不久前我写了一篇关于这个主题的博文 - 试图解释它们是如何组合在一起的。它较旧,但仍然相关,可能会为您提供更多信息。 Designing, Structuring and Architecting DotNetNuke Modules

或者,正如另一位评论者已经发布的那样,只需对内容进行完整的 AJAX 显示。

关于c# - 我可以在不将页面限制为特定模块的情况下呈现 DotNetNuke 模块的控件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com