我在 2sxc dnn 模块中创建超链接类型的字段。
现在,如果我在 razor 脚本中使用它,我会得到指向此页面的 URL,这没关系。
eg:
@Content.LinkFieldName
但现在我需要创建某种导航来显示此链接的所有子页面。呵呵,这个链接可以吗?
eg:
foreach(var page in Content.LinkFileldName.GetChildren???){
<li>@page.Name</li>
}
我在 2sxc dnn 模块中创建超链接类型的字段。
现在,如果我在 razor 脚本中使用它,我会得到指向此页面的 URL,这没关系。
eg:
@Content.LinkFieldName
但现在我需要创建某种导航来显示此链接的所有子页面。呵呵,这个链接可以吗?
eg:
foreach(var page in Content.LinkFileldName.GetChildren???){
<li>@page.Name</li>
}
这是一种方法:首先,获取页面的 DotNetNuke TabInfo(使用 Content.LinkFieldName 调用函数):
public static TabInfo GetTabByUrl(string url){
foreach(var tab in TabController.GetPortalTabs(0, -1, false, true)){
if (tab.FullUrl==url) return tab;
}
return null;
}
现在您有了页面 url 的 TabInfo 并让另一个函数获取子项:
public static List<TabInfo> GetChildren(TabInfo ti){
var list = new List<TabInfo>();
foreach(var tab in TabController.GetPortalTabs(0, -1, false, true)){
if (ti.TabID==tab.ParentId) list.Add(tab);
}
return list;
}
现在所有人都召集在一起列出孩子...
<ul>
@foreach(var page in GetChildren(GetTabByUrl(Content.LinkFieldName))){
<li><a href="@page.FullUrl">@page.TabName</a></li>
}
</ul>
这是我使用的命名空间:
@using System
@using ToSic.SexyContent
@using DotNetNuke.Entities.Tabs