Razor 添加where子句

Razor 添加where子句,razor,umbraco,Razor,Umbraco,我有这个foreach函数,但我需要添加一个where子句 我在Umbraco中添加了一个名为“show”的复选框列表 值,如果这是 "EN" "SP" "US" ... 假设我已经检查了EN和SP 我只希望幻灯片在如下情况下可见,并且如果字段showare“EN”被选中且为true,则幻灯片才可见。如何在代码中添加此项 @foreach (var Slider in Umbraco.ContentSingleAtXPath("//HomePage/SliderArea").Children.

我有这个foreach函数,但我需要添加一个where子句

我在Umbraco中添加了一个名为“show”的复选框列表 值,如果这是

"EN"
"SP"
"US"
...
假设我已经检查了EN和SP

我只希望幻灯片在如下情况下可见,并且如果字段
show
are“EN”被选中且为true,则幻灯片才可见。如何在代码中添加此项

@foreach (var Slider in Umbraco.ContentSingleAtXPath("//HomePage/SliderArea").Children.Where("Visible").OrderBy("CreateDate
desc").Take(4))

您拥有的代码使用的是动态,因此您只能使用伪Linq扩展,如
.Where(“Visible”)
。如果改用类型化对象,您会发现操作项目列表要容易得多

更改此项:

// Returns IPublishedContent as dynamic
Umbraco.ContentSingleAtXPath("//HomePage/SliderArea")
为此:

// Returns fully typed IPublishedContent
Umbraco.TypedContentSingleAtXPath("//HomePage/SliderArea")
然后,您将能够使用Linq的全部功能来执行此操作:

var area = Umbraco.TypedContentSingleAtXPath("//HomePage/SliderArea");

// returns a filtered IEnumerable<IPublishedContent>
var sliders = area.Children.Where(c => c.IsVisible() && c.GetPropertyValue<string>("show") == "EN");

@foreach (IPublishedContent slider in sliders.OrderByDescending(c => c.CreateDate).Take(4))
{
    // You can get the dynamic equivalent of the IPublishedContent like this if you wish:
    dynamic dSlider = slider.AsDynamic();
    // ...
}
var-area=Umbraco.TypedContentSingleAtXPath(“//主页/SliderArea”);
//返回经过筛选的IEnumerable
var sliders=area.Children.Where(c=>c.IsVisible()&&c.GetPropertyValue(“show”)==“EN”);
@foreach(sliders.OrderByDescending(c=>c.CreateDate.Take(4))中的IPPublishedContent滑块)
{
//如果愿意,您可以像下面这样获得IPPublishedContent的动态等价物:
dynamic dSlider=slider.AsDynamic();
// ...
}

哪个版本的umbraco?