Razor 如何使用C#为2sxc中的旗帜英雄创建面包屑导航?

Razor 如何使用C#为2sxc中的旗帜英雄创建面包屑导航?,razor,dotnetnuke,2sxc,Razor,Dotnetnuke,2sxc,通过使用2sxc,我在整个网站的所有页面上都使用了一个hero模块。看起来是这样的: 它使用“@Content.Title”作为h1标记,因此显示“奖学金”。但是我需要制作一个面包屑,获取当前页面的父页面名称。所以在这种情况下,“老师” 例如,这个英雄也存在于其他页面上,比如“志愿者”,它有一个“参与”的父级,因此面包屑会动态显示“参与” 到目前为止,我的代码如下: @if (@Dnn.Tab.ParentId != -1) { <nav class=&q

通过使用2sxc,我在整个网站的所有页面上都使用了一个hero模块。看起来是这样的:

它使用“@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>
                }
<pre>
Debug:

Parent Page Name: @GetTabInfo(Dnn.Tab.ParentId).TabName
</pre>
@if(@Dnn.Tab.ParentId!=-1){
@Dnn.Tab.ParentID/
}
这可以处理根页面上的英雄(不显示面包屑)。但我似乎只能输出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将它称为一个整体吧


调试:
父页面名称:@GetTabInfo(Dnn.Tab.ParentId).TabName

我收到如下错误:错误CS1061:“DotNetNuke.Entities.Tabs.TabInfo”不包含“ParentID”的定义,并且找不到接受“DotNetNuke.Entities.Tabs.TabInfo”类型的第一个参数的扩展方法“ParentID”(您缺少using指令或程序集引用吗?)哦,上面修复了它的.ParentID(我原来有.ParentID,这让人感到困惑,因为Dnn中还有几个地方是TabID,其他地方是TabID)。