我的网站结构类似Home -> News -> Year -> Month -> Day -> Article
,需要查询才能找到Day
文件夹的ID,其中文件夹的名称与指定的Year
匹配,{{1} }和Month
。
例如,对于2003年5月12日,它将类似于:
Day
答案 0 :(得分:2)
您可以使用动态DynamicPublishedContent或强类型IPublishedContent API构建查询,具体取决于您的偏好。
查询将根据其使用位置而有所不同,因此假设您要运行此查询并在"新闻"中显示结果。页面,您需要以下内容:
var year = CurrentPage.Years.Where("Name == @1", "2013").First();
var month = year.Months.Where("Name == @1", "May").First();
var day = month.Days.Where("Name == @1", "12").First();
var dayId = day.Id;
或者,您可以尝试强类型版本:
var day = Model.Content
.Descendants("Year").First(y => y.Name == "2013")
.Descendants("Month").First(m => m.Name == "May")
.Descendants("Day").First(d => d.Name == "12").Id;
为了简洁,我使用了First()
但实际上您可能想要在获取其后代之前检查该页面是否存在。此外,您可能需要查看documentation并提出更适合您的方案的查询。