在DotNetNuke 7中获取特定页面的URL

时间:2013-09-26 19:27:07

标签: html dotnetnuke navigateurl

我在DNN 7中创建了一个页面,并在Codeplex中添加了标准反馈模块。现在我想使用另一个页面中间的超链接(而不是菜单)链接到此页面。

我可以通过管理页面看到反馈页面的网址,而且似乎是一致的。因此,显而易见的方法是使用HTML模块并简单地对URL进行硬编码。但是有些事情是错的。我想到创建一个简单的模块,封装控件中的超链接和周围文本,并使用NavigateURL获取反馈页面的URL。不幸的是,我无法弄清楚如何做到这一点。我已经看到很多关于在同一个模块中获取其他控件的URL甚至使用ModuleID的信息,但没有任何可以帮助我实现代码来获取我的经验水平的特定页面的URL。

对于长篇介绍感到抱歉,但我想知道对URL进行硬编码是否合适,如果不是如何以编程方式获取反馈页面的URL。 TIA

1 个答案:

答案 0 :(得分:3)

NavigateURL的第一个参数是TabId(页面在DNN API中称为制表符)。要获取反馈选项卡/页面的ID,您需要调用DotNetNuke.Entities.Tabs.TabController类之外的方法;我建议使用静态方法TabController.GetTabByTabPath(portalId, tabPath, cultureCode),如下所示:

Globals.NavigateURL(TabController.GetTabByTabPath(this.PortalId, "//Feedback", string.Empty))

你仍然在硬编码这里的页面路径;你可以有一个设置,让你选择页面,但这对于一个简单的链接来说似乎有些过分。通过对路径进行硬编码但仍使用NavigateURL所获得的主要好处是,您对URL的生成方式所做的任何更改(例如,升级到DNN 7.1中的高级URL提供程序)都将自动发生

大多数人并不担心以编程方式在HTML内容中生成链接。