如何在 DotnetNuke 中决定 Globals.NavigateURL 中的 TabId 和 ModuleId?
How to decide TabId and ModuleId in Globals.NavigateURL in DotnetNuke?
我该死的混淆 TabId
和 ModuleId
需要作为参数传递给 Globals.NavigateURL
.
我创建了一个包含 2 个 UserControl 的项目。现在我想在第一个 UserControl 的按钮单击事件中导航。
我查看了一些参考资料。大部分建议通过TabId, Key and ModuleId
。我知道 Key
但我不知道什么是 TabId
和 ModuleId
以及如何在我的 .cs
用户控件文件中获取它们。
有人可以给我建议吗?
如果您的模块设置正确,您应该可以使用这些模块,因为它们是继承的。
从你的问题来看,你对框架的了解还不够。我建议您获取 DNN 7 一书的副本。它与 DNN 8 相关,应该可以让您正确开始。还有其他可用的东西:那里的 wiki 和开发人员资源。
在回答时,我告诉你下面两行代码是等价的:
string miUrl = base.EditUrl("ModuleInfo");
string miUrl = DotNetNuke.Common.Globals.NavigateURL(base.TabId, "ModuleInfo", String.Format("mid={0}", base.ModuleId));
如果继承自 PortalModuleBase,则可以访问基础 class 中的 TabId 和 ModuleId。如果您只需要导航到同一模块中的模块控件(视图),则 base.EditUrl() 可以正常工作。如果您需要导航到另一个模块或另一个页面(选项卡),则需要使用 NavigateUrl()。
我该死的混淆 TabId
和 ModuleId
需要作为参数传递给 Globals.NavigateURL
.
我创建了一个包含 2 个 UserControl 的项目。现在我想在第一个 UserControl 的按钮单击事件中导航。
我查看了一些参考资料。大部分建议通过TabId, Key and ModuleId
。我知道 Key
但我不知道什么是 TabId
和 ModuleId
以及如何在我的 .cs
用户控件文件中获取它们。
有人可以给我建议吗?
如果您的模块设置正确,您应该可以使用这些模块,因为它们是继承的。
从你的问题来看,你对框架的了解还不够。我建议您获取 DNN 7 一书的副本。它与 DNN 8 相关,应该可以让您正确开始。还有其他可用的东西:那里的 wiki 和开发人员资源。
在回答
string miUrl = base.EditUrl("ModuleInfo");
string miUrl = DotNetNuke.Common.Globals.NavigateURL(base.TabId, "ModuleInfo", String.Format("mid={0}", base.ModuleId));
如果继承自 PortalModuleBase,则可以访问基础 class 中的 TabId 和 ModuleId。如果您只需要导航到同一模块中的模块控件(视图),则 base.EditUrl() 可以正常工作。如果您需要导航到另一个模块或另一个页面(选项卡),则需要使用 NavigateUrl()。