Razor 是否可以在DNN外壳中加载特定的2sxc模块?

Razor 是否可以在DNN外壳中加载特定的2sxc模块?,razor,dotnetnuke,2sxc,Razor,Dotnetnuke,2sxc,DNN平台9.3.2/ 2sxc 10.25.2 我有一个使用2sxc的DNN网站。我创建了一个“通知栏”内容类型和c#razor模板,用于向用户显示特殊通知。本模块旨在显示在网站的每个页面上。我使用“添加现有模块”功能手动将模块添加到每个页面,但这有点麻烦,我的内容编辑器可能会意外地移动模块、删除模块或忘记将其添加到新页面 是否有一个特殊的2sxc皮肤对象,我可以在.ascx DNN皮肤中使用它来加载2sxc模块,这样我就不必通过DNN将其添加到每个页面?显然,DNN OpenContent中

DNN平台9.3.2/ 2sxc 10.25.2

我有一个使用2sxc的DNN网站。我创建了一个“通知栏”内容类型和c#razor模板,用于向用户显示特殊通知。本模块旨在显示在网站的每个页面上。我使用“添加现有模块”功能手动将模块添加到每个页面,但这有点麻烦,我的内容编辑器可能会意外地移动模块、删除模块或忘记将其添加到新页面

是否有一个特殊的2sxc皮肤对象,我可以在.ascx DNN皮肤中使用它来加载2sxc模块,这样我就不必通过DNN将其添加到每个页面?显然,DNN OpenContent中有一个

(不仅仅是通知栏,这对于偶尔更新的站点页眉或页脚非常有用。例如,社交媒体链接、地址或电话号码等联系信息,或者不属于DNN页面菜单的其他链接。)

有两种方法

  • 为此特定模块创建一个窗格(这是最容易编辑和使用的),并在所有页面上显示该模块

  • 在隐藏页面上创建模块,然后将其注入皮肤,使用工厂获取CmsBlock-请参阅


  • 丹尼尔,我们过去就是这样做的。我注意到你的电话是类似的,但更简单(上面的评论)。这是因为API在v10之后发生了变化吗

    <script runat="server">
    // get 2sxc to Render() the output from the module on the SITE/Manage Flyout Links page
    private IHtmlString RenderFlyoutMenu()
      {
        return ToSic.SexyContent.Environment.Dnn7.Factory.SxcInstanceForModule(3354, 606).Render();
      }
    </script>
    <%=RenderFlyoutMenu() %>
    
    
    //获取2sxc以呈现()站点/管理弹出链接页面上模块的输出
    私有IHtmlString RenderFlyoutMenu()
    {
    返回到ic.SexyContent.Environment.Dnn7.Factory.SxcInstanceForModule(3354606.Render();
    }
    
    1。我希望避免“在所有页面上显示模块”,但我想这似乎仍然是一个解决方案。我将尝试一下CmsBlock。我研究了Factory/CmsBlock方法,但没有找到答案。我希望会有一个DNN皮肤物体。这是可能的还是雷达上的?我可以看到这样的东西真的很有用——如果没有,我会把它添加到GitHub上的愿望列表中:)我会很快尝试写博客,因为这很简单,但我知道没有文档,这不会让任何人明白;)ToSic.Sxc.Dnn.Factory.CmsBlock(tabId,moduleId.Render())