簡體   English   中英

導航到DNN模塊

[英]Navigating to DNN Module

我正在制作一份通訊,其中包含我DNN網站中各種html模塊的鏈接。 我可以訪問他們的每個ModuleID,我想用它來獲取網址。 目前的方法(由第三方開發人員制作)有效,但僅在一定程度上有效。 當模塊位於網站的更深處時,網址形成錯誤。

例如,位於www.website.com/website/articles.aspx的模塊工作正常,但位於www.website.com/website/articles/subarticles.aspx的模塊不會。 我知道這是因為網址形成錯誤。

這是當前的代碼:

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.崩潰Object reference not set to an instance of an object. 錯誤。 當我使用objtabinfoo.FullUrlobjtabinfoo.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,你真的應該使用NavigateUrl來建立鏈接,你是金色的。

string readMoreLinkPath = NavigateUrl(tabidfrcontent);

很好,很簡單

好的,同事建議這一點,它在調度程序中運行良好。

string linkPath = basePath + "/Default.aspx?TabID=" + tabID;

將導航到正確的選項卡ID。 因此,如果您不得不在沒有一些主要解決方法的情況下無法使用NavigateUrl的調度程序中工作,那么這將是最佳解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM