2016-09-07 40 views
5

Umbraco Collection'daki koşulların nerede uygulanacağını görmek istiyorum.Nasıl uygulanır? Umbraco Collection'daki koşulların nerede olduğu

Kodu:

var workList = CurrentPage.work.ToString().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); 
var workCollection = Umbraco.Content(workList); 
@foreach (var item in workCollection.Where("productImage!=\"\"").Skip((i - 1) * iterationCount).Take(iterationCount)) 

Ama her zaman filtresiz veri almak.
ProductImage yüzden ne yapmak istediğiniz bir dolu projectImage özelliği vardır workcollection ürün almak olduğunu tahmin Medya seçici enter image description here enter image description here

cevap

1

bu

workCollection.Where(x => x.HasValue("productImage")) 

gibi bir şey olurdu denemelisiniz:

var workList = CurrentPage.work.ToString().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); 
var workCollection = Umbraco.Content(workList); 
@foreach (var item in workCollection.Where("productImage != null && productImage != string.Empty").Skip((i - 1) * iterationCount).Take(iterationCount)) { ... } 

Şahsen ben çok yazılan nesnelerle uğraşmayı tercih ederim. er çözelti olabilir: Daha fazla bilgi almak için

var workList = CurrentPage.work.ToString().Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); 
var workCollection = Umbraco.TypedContent(workList); 
@foreach (IPublishedContent item in workCollection.Where(x => x.HasValue("productImage")).Skip((i - 1) * iterationCount).Take(iterationCount)) { ... } 

kontrol: https://our.umbraco.org/documentation/reference/templating/mvc/querying.

Ayrıca bir paket kontrol edebilirsiniz

denilen Umbraco Çekirdek özellik değeri Dönüştürücüler: https://our.umbraco.org/projects/developer-tools/umbraco-core-property-value-converters/ otomatik vb kolayca erişilen nesneler/listeler halinde bazı veri türü değerleri dönüştürmektedir Ör ortam seçici değeri, IPublishedContent modelinde döndürülür ve bu özelliklerden doğrudan döndürülen değerden erişebilirsiniz.

+0

Tam bir çözüm bulamadığım halde, ikinizin de kavramsal olarak doğru olduğunu düşünüyorum. –

+0

Çalıştığına sevindim! –

1

mı?

Ben şahsen bir lambda ifadesi ile bunu ister, sizin durumunuzda size, bunun yerine dinamik nesne sopa istiyorsanız

workCollection.Where("productImage!=\"\"") 
+0

Hatta bir tane daha gitmek eğilimindedir ve ayrıca yapar: workCollection.Where (x => x.HasProperty ("productImage") && x.HasValue ("productImage")) sadece eklediyseniz sadece emin olmak için Yeni bir özellik, indeksler yeniden oluşturuluncaya kadar mevcut olmayabilir, daha çok bir kemer ve parantez yaklaşımı gibi. –

+0

Hata: Dinamik olarak gönderilen bir işlem için argüman olarak bir lambda ifadesini ilk olarak bir temsilci veya ifade ağacı türüne göndermeden kullanamazsınız –

+0

Umbraco.Content yerine Umbraco.TypedContent deneyin – Mark