Umbraco Razor-创建2个列表,然后确定要选择的列表

Umbraco Razor-创建2个列表,然后确定要选择的列表,razor,umbraco,Razor,Umbraco,我在Umbraco 4.11.10中有一个树结构,它使用两种不同类型的“详细信息页面”节点。一个有日期,一个有非日期的“详细信息页面”节点。我需要根据子节点是否具有doctype为“ListParent”的父节点的date属性来确定要显示的列表 我可以创建一个节点列表,但我需要确定显示哪个列表 这就是我最终想要的: 父节点1(“ListParent”的Doctype) 节点一(非日期) 节点二(非日期) 节点三(非日期) 父节点2(“ListParent”的Doctype) 节点一(日期)

我在Umbraco 4.11.10中有一个树结构,它使用两种不同类型的“详细信息页面”节点。一个有日期,一个有非日期的“详细信息页面”节点。我需要根据子节点是否具有doctype为“ListParent”的父节点的date属性来确定要显示的列表

我可以创建一个节点列表,但我需要确定显示哪个列表

这就是我最终想要的:

父节点1(“ListParent”的Doctype)

  • 节点一(非日期)
  • 节点二(非日期)
  • 节点三(非日期)
父节点2(“ListParent”的Doctype)

  • 节点一(日期)
  • 节点二(日期)
  • 节点三(日期)
我真的很熟悉我的代码,但我只是需要一点帮助来决定显示哪一个。这就是我目前所拥有的。我只需要IF语句来确定要显示哪个列表

非常感谢您的帮助

@using umbraco.MacroEngines
@inherits umbraco.MacroEngines.DynamicNodeContext

@{

if(@Model.Descendants().NodeTypeAlias == "Event"){@*Not Working*@
    @pageListingSorted()
}
else{
        <P>not sorted</P>
@pageListing()  
 }

}

@helper pageListing(){  
foreach(var item in @Model.Children.Where("!hideFromAllMenus")){
 var listImage = Library.MediaById(item.landingPageImage);
<div class="boxItem grid_4">

      @if(@item.HasValue("landingPageImage")){
        <a href="@item.Url">
        <img src="/imagegen.ashx?width=224&image=@listImage.Url" style="margin-left:-60px" />
        </a>
        <div class="boxButtons"></div>
             if (!String.IsNullOrWhiteSpace(item.buyNowLink))
            {
               <a href="@item.buyNowLink" class="buyNowBtn" title="Buy tickets to @item.Name"  onclick="pageTracker._link('@item.buyNowLink'); return false;">Buy Now</a>
            }

            <a href="@item.Url" class="learnMoreBtn">Learn More</a>
      }
      <h3>
            @if (!String.IsNullOrWhiteSpace(item.altPageTitle))
            {
               <a href="@item.Url"> @item.altPageTitle</a>
            }
            else
            {
               <a href="@item.Url"> @item.Name</a>
            }
        </h3>


    </div>

 }

}
 @*END PAGE LISTING HELPER*@


 @helper pageListingSorted(){
 foreach(var item in   @Model.Children.Where("!hideFromAllMenus").Where("calendarEventDateTime != null").OrderBy("calendarEventDateTime")){
 var listImage = Library.MediaById(item.landingPageImage);
    <div class="boxItem grid_4">

      @if(@item.HasValue("landingPageImage")){
        <a href="@item.Url">
            @*--Added margin negative left for original images - Take out on Live--*@
        <img src="/imagegen.ashx?width=224&image=@listImage.Url" style="margin-left:-60px" />
        </a>
        <div class="boxButtons"></div>
             if (!String.IsNullOrWhiteSpace(item.buyNowLink))
            {
               <a href="@item.buyNowLink" class="buyNowBtn" title="Buy tickets to @item.Name"  onclick="pageTracker._link('@item.buyNowLink'); return false;">Buy Now</a>
            }

            <a href="@item.Url" class="learnMoreBtn">Learn More</a>
      }
      <h3>
            @if (!String.IsNullOrWhiteSpace(item.altPageTitle))
            {
               <a href="@item.Url"> @item.altPageTitle</a>
            }
            else
            {
               <a href="@item.Url"> @item.Name</a>
            }
        </h3>
         @*Event Status*@
        @if (item.soldOut)
        {
            <p class="statusAlert">Sold Out</p>
        }
        else if (item.cancelled)
        {
            <p class="statusAlert">Cancelled</p>
        }
        else if (item.rescheduled)
        {
         <p class="statusAlert">Rescheduled</p>
        }
        else
        {
            <text></text>
        }
         @if (!String.IsNullOrWhiteSpace(item.eventTimeHeader))
        {
            <div class="dateTimeHeader">@item.eventTimeHeader</div>
        } 

    </div>
  }

 }@*END PAGE LISTING SORTED HELPER*@
@使用umbraco.MacroEngines
@继承umbraco.MacroEngines.dynamicontext
@{
如果(@Model.subjections().NodeTypeAlias==“Event”){@*不工作*@
@pageListingSorted()
}
否则{

未排序

@页面列表() } } @助手页面列表(){ foreach(@Model.Children.Where(“!hideFromAllMenus”)中的变量项){ var listImage=Library.MediaById(item.landingPageImage); @if(@item.HasValue(“landingPageImage”)){ 如果(!String.IsNullOrWhiteSpace(item.buyNowLink)) { } } @如果(!String.IsNullOrWhiteSpace(item.altPageTitle)) { } 其他的 { } } } @*结束页列表帮助程序*@ @helper pageListingSorted(){ foreach(@Model.Children.Where(“!hideFromAllMenus”).Where(“calendarEventDateTime!=null”).OrderBy(“calendarEventDateTime”)){ var listImage=Library.MediaById(item.landingPageImage); @if(@item.HasValue(“landingPageImage”)){ 如果(!String.IsNullOrWhiteSpace(item.buyNowLink)) { } } @如果(!String.IsNullOrWhiteSpace(item.altPageTitle)) { } 其他的 { } @*事件状态*@ @如果(项目soldOut) {

售罄

} 否则,如果(项目已取消) {

已取消

} 否则,如果(项目重新安排) {

重新安排

} 其他的 { } @如果(!String.IsNullOrWhiteSpace(item.eventTimeHeader)) { @item.eventTimeHeader } } }@*结束页列出已排序的帮助程序*@
如果可排序的子节点是节点类型“事件”(子节点的目标是向下一个级别-如果要检查以下多个级别,则只需要使用子节点),则这应该是正常的:

if(@Model.Children().Where(x=>x.NodeTypeAlias==“Event”).Count()>0){
@pageListingSorted()
}
否则{

未排序

@页面列表() }
这就是我找到的解决方案。谢谢@amelvin在正确的方向上帮助我

if(@Model.Children.Where("NodeTypeAlias == \"Event\"").Count() > 0) {
    @pageListingSorted()
}
else{
 <P>not sorted</P>
@pageListing()  
 }
if(@Model.Children.Where(“NodeTypeAlias==\“Event\”).Count()>0){
@pageListingSorted()
}
否则{

未排序

@页面列表() }
这真的很接近。但你确实让我走对了方向。我得到了一个Lamda和动态对象错误。我的解决方案已发布。
if(@Model.Children.Where("NodeTypeAlias == \"Event\"").Count() > 0) {
    @pageListingSorted()
}
else{
 <P>not sorted</P>
@pageListing()  
 }