1

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

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

到目前为止,我有:

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

1 回答 1

3

看起来你对剃须刀有点陌生。这个答案列出了一些很好的资源,可帮助您开始学习 Umbraco 的剃刀语法。

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

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

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

上面的代码片段获取节点的祖先(包括它自己)并通过节点的名称(“蓝色”)过滤它们。然后它检查集合中是否有任何节点。如果有,那么当前节点要么是“蓝色”,要么它有一个名为“蓝色”的祖先,因此应用了该样式。

于 2013-02-07T04:17:01.140 回答