【问题标题】:How do I create a breadcrumb nav for a banner hero in 2sxc using C#?如何使用 C# 在 2sxc 中为横幅英雄创建面包屑导航?
【发布时间】:2021-04-06 17:59:14
【问题描述】:

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

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

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

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

@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# 获取父选项卡的名称?还是有其他方法可以解决这个问题?

【问题讨论】:

    标签: razor dotnetnuke 2sxc


    【解决方案1】:

    最简单的做法是使用 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>
    

    【讨论】:

    • 我收到这样的错误:错误 CS1061:“DotNetNuke.Entities.Tabs.TabInfo”不包含“ParentID”的定义,并且没有扩展方法“ParentID”接受第一个参数类型“可以找到 DotNetNuke.Entities.Tabs.TabInfo'(您是否缺少 using 指令或程序集引用?)
    • 哎呀,它的 .ParentId,在上面固定(我最初有 .ParentID,因为在 Dnn 中剩下几个地方是 TabID 而其他地方是 TabId)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-06
    • 2017-02-20
    • 1970-01-01
    • 2019-09-07
    相关资源
    最近更新 更多