我有一个关于 Umbraco 的非常简单的问题,但目前还没有明显的答案。
我有一个剃须刀模板,标准的东西,带有 @ 显示变量和一些内联 C# 代码。
在我使用的模板中的某一时刻:
@Umbraco.RenderMacro("myCustomMacro");
那里没有问题,一切都按预期工作。
现在,这个宏被插入到每个页面(它在主模板中),但我有一个页面属性,允许内容作者通过页面属性中的复选框打开和关闭它,到目前为止一切正常.
但是我现在发现对于某个“文档类型”,必须显示这个组件,所以我一直在尝试找到一种方法来执行该检查。
现在在我看来,这应该像这样简单:
@{
if(CurrentPage.documentType == "someDocTypeAliasHere")
{
//Render the macro
}
else
{
// Render the macro only if the tick box is checked
}
}
正如我所说,这是(或者我相信无论如何应该是)一个非常简单的操作,但到目前为止似乎没有结果。
到目前为止我尝试了什么?
除了阅读 our-umbraco 上提到与 razor 和 @CurrentPage 变量有关的每一页之外,我已经阅读了 razor 属性备忘单,并尝试了似乎是最常见的属性,包括(没有具体命令):
@CurrentPage.NodeTypeAlias
@CurrentPage.NodeType
@CurrentPage.ContentType
@CurrentPage.DocumentType
以及它们的各种字母大小写组合,以及其他一些看起来可能符合要求的字母组合。
始终,这些属性要么不存在,要么为空,因此其中没有可用信息来帮助确定结果。
所以现在经过几天的转圈,我发现自己没有到达任何地方......
(请注意:这不是搜索 XSLT 问题,也不是迭代子集合或类似的东西,因此任何发布 XSLT、宏、页面模板或类似内容的请求都将被拒绝,我需要做的就是找到一个确定正在呈现的当前页面的文档类型的方法。)
干杯
肖蒂
PS:忘了说,我正在使用
umbraco v 4.11.8(程序集版本:1.0.4869.17899)
以防万一有人问。