Невозможно отобразить ошибку простоты при использовании Razor Macro в Umbraco 4.7.1 - PullRequest
1 голос
/ 06 октября 2011
@inherits umbraco.MacroEngines.DynamicNodeContext
@using System
@using System.Linq
@using System.Xml.Linq
@{
dynamic node = new umbraco.MacroEngines.DynamicNode(1121);

 }


 @foreach (dynamic group in node.Children.OrderBy("CreatedDate").Take(2))
 {
<div class="column-holder">
@foreach (var item in group )
{
      <div class="cell">

         <h3>@item.Name</h3>
        <em>@String.Format("{0:dddd, MMMM d yyyy}", item.EventDateTime) - Starts at @String.Format("{0:HH:mm}", item.EventDateTime)</em><br />
        <span>@(Library.Truncate(Library.StripHtml(item.EventDescription), 50, true))</span>
         <p class="readmore-link"><a href="@item.Url" class="link more">read more</a></p>      

       </div>


}
</div>

}

Следующая ошибка появляется при попытке запустить вышеупомянутый микро на домашней странице:

Ошибка загрузки скрипта Razor ~ / macroscripts / eventhomepage.cshtml Не удается неявно преобразовать тип «umbraco.MacroEngines.DynamicNode» в «System.Collections.IEnumerable». Существует явное преобразование (вам не хватает приведения?)

1 Ответ

0 голосов
/ 08 октября 2011

Я немного использую эту структуру, чтобы делать подобные вещи

IEnumerable<DynamicNode> nodeList = new DynamicNode(1121).Descendants(2).Items.OrderBy(x => x.CreateDate).Take(2);
List<DynamicNode> nodes = nodeList.ToList(); 

, и тогда ваш foreach будет просто

foreach(DynamicNode group in nodes)

и убедитесь, что вы добавили

@using umbraco.MacroEngines
...