在Umbraco的后裔或自己

时间:2013-02-06 22:04:07

标签: razor umbraco

我正在尝试在剃刀中为umbraco网站做一个if语句。我需要通过Name属性获取页面及其所有子项,以便能够向该页面添加样式表以及树中的所有子项

我可以让父母没有问题,但我对后代有困难,因为我不知道它会去哪里?

到目前为止,我有:

@{
    var selectedNode = @Model.Name();  
    if(@selectedNode == "blue")
    {
        do this
    }
}

1 个答案:

答案 0 :(得分:3)

看起来你对剃刀有点新意。 This answer列出了一些很好的资源,可以帮助您开始学习Umbraco的剃刀语法。

在回答您的问题时,我不确定我是否完全理解您要完成的任务。从我所看到的,您希望根据页面的名称或其祖先的名称向页面添加样式表。我建议可能不是关键名称的最佳选择;一个更稳定的解决方案是使用节点的id。但是,这是一个有希望提供帮助的代码示例:

@{ 
    var nodes = Model.AncestorsOrSelf().Where("Name == @0", "Blue");

    if (nodes.Count() > 0)
    { 
        <link type="text/css" rel="Stylesheet" href="/css/style.css" />
    }
}

以上代码段获取节点的祖先(包括其自身)并按节点名称过滤它们(&#34; Blue&#34;)。然后它检查集合中是否有任何节点。如果有,那么当前节点是&#34;蓝&#34;或者它有一个名为&#34; Blue&#34;因此应用了风格。