如何使用 C# 在 2sxc 中为横幅英雄创建面包屑导航?

How do I create a breadcrumb nav for a banner hero in 2sxc using C#?

使用 2sxc,我有一个英雄模块,我在整个网站的所有页面上都使用了它。它看起来像这样:

它使用“@Content.Title”作为 h1 标签,因此显示“奖学金”。但是我需要制作一个面包屑来获取当前页面的父页面名称。所以在这种情况下,“老师”。

例如,这个英雄也存在于“志愿者”等其他页面上,并且它有一个“参与”的父页面,因此面包屑会动态显示“参与”。

到目前为止,这是我的代码:

@if (@Dnn.Tab.ParentId != -1) {
                <nav class="uppercase text-sm font-semibold tracking-wider"><span class="text-honeydew visited:text-honeydew">@Dnn.Tab.ParentID</span> <span>/</span></nav>
                }

这适用于处理根页面上的英雄(不显示面包屑)。但是我好像只能输出ParentID。

我如何使用@Dnn.Tab.ParentID 在 C# 中获取父选项卡的名称?或者有其他方法可以解决这个问题吗?

最简单的做法是使用 TabController 将 TabId 转换为 TabInfo

@using DotNetNuke.Entities.Tabs

@functions {

  private TabInfo GetTabInfo(int tabId)
  {
    return TabController.Instance.GetTab(tabId, Dnn.Portal.PortalId);
  }

}

因此,只需使用 .ParentId 将其全部调用...

<pre>
Debug:

Parent Page Name: @GetTabInfo(Dnn.Tab.ParentId).TabName
</pre>