【问题标题】:Correct way to get access to Dnn Stuff while using Modern 2sxc Hybrid Views使用 Modern 2sxc Hybrid Views 时访问 Dnn Stuff 的正确方法
【发布时间】:2022-01-18 01:15:38
【问题描述】:

现在我的新观点开始于

@inherits Custom.Hybrid.Razor12

我需要做什么才能在需要时继续访问 Dnn Stuff?我一直在浏览文档,但还没有发现任何东西。

是否有编译代码可以让我们执行<### IF DNN ###> 之类的操作?

我现在的具体需求,我希望有人能提供一个例子,我们总是这样包装我们的模块/视图输出

<div id="viewtype-@(Dnn.Module.ModuleID)">

</div>

这使我们能够包含一些非常以模块为目标(非泄漏)的 CSS。

<style>
#viewtype-@(Dnn.Module.ModuleID) .navbar{
  ...
}
</style>

那么这样就变成了两个问题:

  • 如何在视图中正确执行 DNN 特定的操作?
  • 在上面的示例中,新的正确方法是什么,以便它也可以在 Oqtane 上工作?他们是否有一个可以提供与 View 相同级别的唯一 ID 的 Helper?

【问题讨论】:

  • 好的,我在这里找到了部分答案。 docs.2sxc.org/api/dot-net/ToSic.Sxc.Context.ICmsModule.html 但是,如果我仍然需要/想要实际使用 @Dnn 帮助程序的某些东西,有没有办法让它工作?
  • 嗨 Jeremy - 要获得 Dnn 对象,您必须使用基类 Custom.Dnn.Razor12 - 唯一的区别是 Dnn 对象。这不能在 Hybrid 上工作,因为 Oqtane 不会有 Dnn 对象 - 否则它与 Custom.Hybrid.Razor12 相同

标签: dotnetnuke 2sxc


【解决方案1】:

编辑模板时,编辑窗口左侧有一个菜单。如果您展开 ,您将看到各种帮助程序、DNN 等。

而且,顶部图标会展开为您可能想要编辑的所有文件/视图/css 的列表。

还是我误会了?

哦,你不必再做任何 的事情了。您可以仅引用 DNN 变量和方法(可能以 @ 开头)并使用它们。毕竟,模板是 HTML 和 Razor 的混合体。 Razor 的东西与 c# 非常接近。

所以,你可以像这样放一些东西:

[p] 这是使用门户 ID 的示例:@Dnn.Module.PortalID [/p]

注意: 替换为 [ 和 ],这样它们就不会被解释为标签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多