【问题标题】:Set DNN Tab URL programmatically以编程方式设置 DNN 选项卡 URL
【发布时间】:2017-06-12 17:21:34
【问题描述】:

我正在使用 DNN API 创建页面,如下所示:

public int AddPage(string name, string title, string url, int parentPageID = 0)
{
    TabController pageManager = new TabController();
    TabInfo newPage = new TabInfo();
    newPage.PortalID = _PortalID;
    newPage.TabName = name;
    newPage.Title = title;
    newPage.ParentId = parentPageID;
    newPage.SkinPath = "/path-to-skin";
    newPage.SkinSrc = "/path-to-skin/skin-name.ascx";
    int newPageID = pageManager.AddTab(newPage);

    TabUrlInfo tabUrlInfo = new TabUrlInfo();
    tabUrlInfo.TabId = newPageID;
    tabUrlInfo.Url = url;
    tabUrlInfo.HttpStatus = "200";
    tabUrlInfo.SeqNum = 1;
    newPage.TabUrls.Add(tabUrlInfo);
    pageManager.UpdateTab(newPage);

    var parentPage = GetPage(parentPageID);
    _AddDDRMenuToPage(newPageID, parentPage.TabName);
    return newPageID;
}

TabUrlInfo 方法没有影响,newPage.Url 将页面设置为链接。 我要更改的属性是:

知道我哪里出错了吗?

编辑:
通过使用这行代码,我更进一步:

PageManager.SaveTabUrl(tabUrlInfo, _PortalID, true);

替换这两行:

newPage.TabUrls.Add(tabUrlInfo);
pageManager.UpdateTab(newPage);

使用 SaveTabUrl 可以正确地将记录保存在 TabUrls 表中,但是当我尝试转到页面设置时出现 404 错误?

【问题讨论】:

    标签: url dotnetnuke


    【解决方案1】:

    您可以使用TabController > SaveTabUrl。这是来自 DNN 7.3 及更高版本。

    //create a new tabcontroller instance
    TabController controller = new TabController();
    
    //create a new tab with some properties
    TabInfo newTab = new TabInfo();
    newTab.PortalID = 0;
    newTab.TabName = "TabNaam";
    newTab.Title = "TabTitel";
    
    //add the new tab and get it's new tabid
    int newTabId = controller.AddTab(newTab);
    
    //create a new taburlinfo insance and set some propeties
    TabUrlInfo tabUrl = new TabUrlInfo();
    tabUrl.TabId = newTabId;
    tabUrl.SeqNum = 0;
    tabUrl.Url = "/dit-is-een-test";
    tabUrl.HttpStatus = "200";
    
    //save the url info
    controller.SaveTabUrl(tabUrl, PortalId, true);
    

    【讨论】:

    • 是的,我与您在编辑中看到的相同,但我不知道的一件事是您无法指定带有空格的 URL 值,所以我做了用连字符替换不断变化的空格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    相关资源
    最近更新 更多