从2sxc页面链接字段中获取子页面

时间:2016-05-23 20:04:18

标签: dotnetnuke-module 2sxc

我在2sxc dnn模块中创建了类型超链接的字段。

现在如果我在剃刀脚本中使用它,我会得到指向此页面的URL,这是可以的。

eg:
@Content.LinkFieldName

但是现在我需要创建某种导航来向我显示此链接的所有子页面。哇,我可以得到这个链接吗?

eg:
foreach(var page in Content.LinkFileldName.GetChildren???){
    <li>@page.Name</li>
}

1 个答案:

答案 0 :(得分:0)

这是一种方式: 首先,获取页面的DotNetNuke TabInfo(使用Content.LinkFieldName调用函数):

[self colorGen]

现在你有了页面网址的TabInfo,并让另一个函数得到了孩子:

public static TabInfo GetTabByUrl(string url){
    foreach(var tab in TabController.GetPortalTabs(0, -1, false, true)){
        if (tab.FullUrl==url) return tab;
    }
    return null;
}

现在所有人都召集在一起列出孩子......

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>