我正在编写一份时事通讯,其中包含指向我的 DNN 网站中各种 html 模块的链接。我可以访问他们的每个 ModuleID,我想用它来获取 url。当前的方法(由第三方开发人员制作)有效,但只是在一定程度上。当模块位于网站更深处时,url 的格式不正确。
例如,位于 www.website.com/website/articles.aspx 的模块可以正常工作,但位于 www.website.com/website/articles/subarticles.aspx 的模块不能。我知道这是因为 url 格式不正确。
这是当前代码:
DotNetNuke.Entities.Modules.ModuleController objModCtrlg = new DotNetNuke.Entities.Modules.ModuleController();
DotNetNuke.Entities.Modules.ModuleInfo dgfdgdg = objModCtrlg.GetModule(ContentMID);
TabController objtabctrll = new TabController();
TabInfo objtabinfoo = objtabctrll.GetTab(tabidfrcontent);
string tabnamefremail= objtabinfoo.TabName;
moduletitlefrEmail = dgfdgdg.ModuleTitle;
string readmorelinkpath = basePath + "/" + tabnamefremail + ".aspx";
ContentMID 是我正在查看的当前模块 ID。我曾尝试使用 Globals.NavigateURL,但总是因Object reference not set to an instance of an object.
错误而崩溃。我使用时objtabinfoo.FullUrl
也是如此,所以我目前不知道如何获取特定模块的 URL。
编辑:这里有更多关于如何检索 tabId 的代码。
IDictionary<int, TabInfo> dicTabInfo12 = new Dictionary<int, TabInfo>();
ContentMID = Convert.ToInt32(dsNewsList.Tables[0].Rows[i]["ModuleID"]);
dicTabInfo12 = objTabctrl.GetTabsByModuleID(ContentMID);
if (dicTabInfo12.Count > 0)
{
string tester = ""; //Debug
foreach (KeyValuePair<int, TabInfo> item1 in dicTabInfo12)
{
tabidfrcontent = item1.Key;
}
}