В настоящее время я переписываю макрос XSLT для отображения дочерних узлов текущей страницы в зависимости от того, какие переменные строки запроса установлены для «месяц» и «год».Это используется для страницы списков новостей, которая отображает статьи за определенный период.
В старом макросе я перебираю и выбираю узлы, где указывается часть месяца свойства "newsDate" (которое является полем datepicker) и присвоение их переменной списка узлов.$ Displaymonth получено из строки запроса.
<xsl:for-each select="$currentPage/*[@isDoc]">
<xsl:sort order="descending" select="newsDate" data-type="text"/>
<xsl:if test="umbraco.library:FormatDateTime(newsDate, '%M') = $displayMonth">
<xsl:copy-of select="." />
</xsl:if>
</xsl:for-each>
У меня проблемы с созданием аналогичного списка узлов с использованием синтаксиса бритвы.Предполагая, что месяц строки запроса - август, я пробовал что-то вроде
Model.Children.Where(umbraco.library.FormatDateTime(newsDate,'M') + " == 8");
Model.Children.Where("Convert.ToDateTime(newsDate).Month == \"8\"");
Model.Children.Where("newsDate.Month == \"8\"");
Model.Children.Where("newsDate.Value.Month == \"8\"");
Model.Children.Where(i=>Convert.ToDateTime(i.GetProperty("newsDate").Value).Month==8))
. Ошибки отладки в основном жалуются на то, что в моей переменной newsDate нет свойства "month".Либо это, либо «Отсутствует свойство или дата поля в типе« Func`2 »».Кажется, что мое свойство Datepicker обрабатывается как строка, что бы я ни делал, как описано здесь , но я использую последнюю версию umbraco.
Как найти детей, конвертируя месяц /год свойства datepicker (объект DateTime в Umbraco) и сравнение его с переменной?Как я могу даже получить это свойство даты и извлечь месяц / год, находясь внутри оператора .Where?