簡體   English   中英

對象不包含“跳過” Umbraco剃刀的定義

[英]object does not contain a definition for 'Skip' Umbraco razor

我正在嘗試按其首字母對某些節點進行排序,並用剃刀將其分頁。(Umbraco)。 但是,在碰到foreach時,出現“對象不包含'Skip'的定義”錯誤。

pagesToList = homeNode.Children.OrderBy("Name");

IEnumerable<DynamicNode> nl = @homeNode.Children.Items;
pagesToList = nl.Where(x => x.Name.StartsWith(currentLetter));

這是@pagesToList輸出:

System.Linq.Enumerable+WhereListIterator`1[umbraco.MacroEngines.DynamicNode]


foreach(dynamic item in pagesToList.Skip(1){

}

您可能使用了錯誤的屬性。 如果僅在homeNode下方的那些節點之后,則不要使用Items屬性。 另外,請盡量不要投射對象。 C#有一個有效的var對象。 假設homeNode是DynamicNode,則可能值得嘗試以下操作:

pagesToList = homeNode.Children.OrderBy("Name").Where(x => x.Name.StartsWith(currentLetter));

然后您的代碼應該工作了。 請注意,我們再次使用var是因為我們希望在編譯時聲明對象,而不是使用dynamic,只有在訪問pagesToList對象的某些未知或dynamic屬性時,才應該這樣做:

foreach(var item in pagesToList.Skip(1)){

}

綜上所述,您的代碼似乎使用的是“ Items”屬性,該屬性為我們提供了DynamicNode []數組,而不是IEnumerable對象。

我希望這能夠幫到你。 祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM