DNN Web サイト内のさまざまな html モジュールへのリンクを含むニュースレターを作成しています。それぞれの ModuleID にアクセスでき、それを使用して URL を取得したいと考えています。現在のアプローチ (サードパーティの開発者によって作成された) は機能しましたが、ある程度しか機能しませんでした。モジュールが Web サイトの奥にある場合、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;
}
}