我有一个网址(例如http://localhost/Aanbod/Pagina.aspx)并且我想知道标签 id,所以我可以使用查询创建一个友好的网址(例如http://localhost/Aanbod/Pagina/QueryKey/查询值/ )。
有人有想法吗?
编辑:
我不在页面本身。想从任何可能的页面了解它。
url 本身不包含选项卡 ID,因此无法提取。
我有一个网址(例如http://localhost/Aanbod/Pagina.aspx)并且我想知道标签 id,所以我可以使用查询创建一个友好的网址(例如http://localhost/Aanbod/Pagina/QueryKey/查询值/ )。
有人有想法吗?
编辑:
我不在页面本身。想从任何可能的页面了解它。
url 本身不包含选项卡 ID,因此无法提取。
如果 Pagina.aspx 是 dotnet nuke 中的一个页面,例如 Home 或 Getting Started,那么您可以通过以下方式找到标签 ID
DotNetNuke.Entities.Tabs.TabController objTab = new DotNetNuke.Entities.Tabs.TabController();
DotNetNuke.Entities.Tabs.TabInfo objTabinfo = objTab.GetTabByName("Pagina", this.PortalId);
int Tabid = objTabinfo.TabID;
嗯,这个帖子有点老了,不知道还有没有人在找解决办法。我最近遇到了这个问题,这是我为解决它而编写的代码片段:
public int GetTabIDFromUrl(string url, int portalID)
{
int getTabIDFromUrl = 0;
// Try the "old" way with the TabID query string
if (url.ToLower().IndexOf("tabid") > 0)
{
Int32.TryParse(Regex.Match(url, "tabid[=/](\\d+)", RegexOptions.IgnoreCase).Groups[1].Value, out getTabIDFromUrl);
}
// When there is no result (because of advanced or human friendly or whatever Url provider)
if (getTabIDFromUrl == 0)
{
TabCollection tabs = TabController.Instance.GetTabsByPortal(portalID);
foreach (KeyValuePair<int, TabInfo> k in tabs)
{
TabInfo tab = k.Value;
if (tab.FullUrl.StartsWith(url))
{
getTabIDFromUrl = tab.TabID;
break;
}
}
}
return getTabIDFromUrl;
}
这对于有很多页面的网站来说可能会很痛苦,因此如果您有一些额外的信息来缩小您必须循环通过的列表 - 例如放置在此选项卡上的模块的 ModuleId ,它可能会很有用:
public int GetTabIDFromUrl(string url, int moduleID, int portalID)
{
int getTabIDFromUrl = 0;
// Try the "old" way with the TabID query string
if (url.ToLower().IndexOf("tabid") > 0)
{
Int32.TryParse(Regex.Match(url, "tabid[=/](\\d+)", RegexOptions.IgnoreCase).Groups[1].Value, out getTabIDFromUrl);
}
// When there is no result (because of advanced or human friendly or whatever Url provider)
if (getTabIDFromUrl == 0)
{
IList<ModuleInfo> modules = ModuleController.Instance.GetTabModulesByModule(moduleID);
foreach (ModuleInfo module in modules)
{
TabInfo tab = TabController.Instance.GetTab(module.TabID, portalID);
if (tab.FullUrl.StartsWith(url))
{
getTabIDFromUrl = tab.TabID;
break;
}
}
}
return getTabIDFromUrl;
}
希望对某人有所帮助...
快乐 DNN!迈克尔
我希望这能解决你的问题
http://www.willstrohl.com/Blog/EntryId/66/HOW-TO-Get-DNN-TabInfo-page-object-from-TabId
对不起这是我的错!!
这是你的答案
http://www.dotnetnuke.com/Resources/Forums/forumid/118/threadid/89605/scope/posts.aspx :)