gpt4 book ai didi

c# - 在 DotNetNuke 中访问 asmx webservice 文件中的 ModuleID 和 PortalID

转载 作者:行者123 更新时间:2023-11-30 20:06:56 26 4
gpt4 key购买 nike

我的 DotNetNuke 模块中有一个 asmx 网络服务文件。我如何访问这个 asmx 文件中的 PortalID 和 ModuleID。当我尝试这段在 .ascx.cs 文件后面的代码中运行良好的代码时,它返回 portalID=0 , ModuleID=1

 private Components.Setting _ModuleSettings;
_ModuleSettings = new Components.Setting(PortalId, ModuleId);

最佳答案

编辑以下内容仍然正确,但是 DNN 6.2 的发布包括专门用于在 DNN 中构建 Web 服务的服务框架。服务框架是比滚动您自己的基于 .asmx 的服务更好的解决方案。

/编辑

由于您正在执行网络服务调用而不是 DNN 模块,因此不会为您提供上下文。但是您可以自己重新创建它。获取当前门户设置

var domainName = Globals.GetDomainName(request);
var alias = PortalAliasController.GetPortalAliasInfo(domainName);

return new PortalSettings(-1, alias);

由于您并不真正处于页面上下文中,ActiveTab 将回退到默认值(除非您可以将 -1 替换为事件 tabId)。

要获取模块上下文,您需要将 moduleId 和 tabId 传递给您的服务,然后调用:

var module = new ModuleController().GetModule(moduleId, tabId)

关于c# - 在 DotNetNuke 中访问 asmx webservice 文件中的 ModuleID 和 PortalID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9158669/

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