我正在形成一个通讯,其中包含指向DNN网站中各种html模块的链接。我有权访问他们的每个ModuleID,我想用它来获取URL。目前的方法(由第三方开发人员制定)工作,但仅在一定程度上。当模块位于网站更深处时,URL的形成不正确。导航到DNN模块
例如位于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;
}
}
我仍然得到'对象引用未设置为对象的实例'我不明白为什么。我唯一的猜测是tabid可能是错的。不幸的是,我无法正确调试,因此我依靠写入文本文件的消息。 – Mitchell 2012-07-13 19:31:18
我刚刚看到这篇文章http://www.dotnetnuke.com/Resources/Forums/forumid/203/postid/361541/scope/posts.aspx我在计划任务中使用它,这可能是为什么我会得到错误。问题是,我将如何获取并分配门户网站设置? – Mitchell 2012-07-13 20:21:34