Umbraco&剃刀。按下拉列值筛选选择

时间:2017-02-08 11:11:08

标签: razor filter umbraco

我有从当前页面的子项生成的选择。在那个选择中(我们称之为Fruit)我有项目,每个项目都有一个fruitType。

此代码不起作用:

@{
    var selection = CurrentPage.Children("fruit").Where("Visible");
}
<ul>
    @foreach(var item in selection){
        @if(@item.fruitType == "Apple"){
        <li>
            <a href="@item.Url">@item.Name</a><br/>
            @item.fruitName<br>
            @item.fruitType<br>
            @if (item.image != null && !(item.image is Umbraco.Core.Dynamics.DynamicNull))
                        { var m = Umbraco.Media(item.image);
                            <img src="@m.Url" alt="Picture of @item.Name" />
                        }
        </li>
        }
    }
</ul>

我要做的是只列出fruitType为“Apple”的项目。这个值是从“fruitType”下拉列表中选择的,我尝试使用Umbraco从Dropdown数据类型中使用的数值和字符串值。

除非它显示所有水果类型,否则如果我删除if条件,这一切都很有效。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

叹息只有一个太多的声明..

原来, if item 引用都不需要前面的附加@声明,所以正确的代码如下所示:

@{
    var selection = CurrentPage.Children("fruit").Where("Visible");
}
<ul>
    @foreach(var item in selection){
        if(item.fruitType == "Apple"){
        <li>
            <a href="@item.Url">@item.Name</a><br/>
            @item.fruitName<br>
            @item.fruitType<br>
            @if (item.image != null && !(item.image is Umbraco.Core.Dynamics.DynamicNull))
                        { var m = Umbraco.Media(item.image);
                            <img src="@m.Url" alt="Picture of @item.Name" />
                        }
        </li>
        }
    }
</ul>