以编程方式设置 DNN 选项卡 URL
Set DNN Tab URL programmatically
我正在使用 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 将页面设置为 link。
我要更改的 属性 是:
知道我哪里出错了吗?
编辑:
通过使用这行代码,我更进一步:
PageManager.SaveTabUrl(tabUrlInfo, _PortalID, true);
替换这两行:
newPage.TabUrls.Add(tabUrlInfo);
pageManager.UpdateTab(newPage);
使用 SaveTabUrl 可以在 TabUrls table 中正确保存记录,但是当我尝试转到页面设置时出现 404 错误?
您可以使用 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);
我正在使用 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 将页面设置为 link。
我要更改的 属性 是:
知道我哪里出错了吗?
编辑:
通过使用这行代码,我更进一步:
PageManager.SaveTabUrl(tabUrlInfo, _PortalID, true);
替换这两行:
newPage.TabUrls.Add(tabUrlInfo);
pageManager.UpdateTab(newPage);
使用 SaveTabUrl 可以在 TabUrls table 中正确保存记录,但是当我尝试转到页面设置时出现 404 错误?
您可以使用 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);