2016-04-14 22 views
1

Bir sorum var. Benim yaptığım gibi ben, özel bir kontrol cihazından "Aktif == true" özelliğiyle ve .cshtmlÖzel mülkle filtrele - Umbraco

Kontrolör

public class PollsController : SurfaceController 
{ 
    private List<Theme> ThemeList() 
    { 
     var themePageList = Umbraco.Content(CurrentPage.Id).Children.Where("¿¿¿???"); 
     var themeList = new List<Theme>(); 

     foreach (var currentTheme in themePageList) 
     { 
      themeList.Add(
       new Theme 
       { 
        ID = currentTheme.Id, 
        Title = currentTheme.Name, 
       } 
       ); 
     } 

     return themeList; 
    } 
} 

dan Ve denetleyicisinde filtrelemeyen eğer çocukları listelemek gerekir görünümü filtrelemek için?

CSHTML

@model Encuestas.ViewModels.PollViewModel 

@foreach (var currentTheme in Model.Themes.Where("¿¿¿???") 
{ 
    <div> 
     <p> 
      <h1 style="text-align: center">@currentTheme.Title</h1> 
     </p> 
    </div> 
} 

Umbraco içerik

Polls 
    Theme 1 
     Question 1 
      Answer 1 
      Answer 2 
      Answer 3 
      Answer 4 
     Question 2 
      Answer 1 
      Answer 2 
      Answer 3 
      Answer 4 
     Question 3 
      Answer 1 
      Answer 2 
      Answer 3 
      Answer 4 
    Theme 2 ==> Active == false 
     Question 1 
      Answer 1 
      Answer 2 
      Answer 3 
      Answer 4 
     Question 2 
      Answer 1 
      Answer 2 
      Answer 3 
      Answer 4 
     Question 3 
      Answer 1 
      Answer 2 
      Answer 3 
      Answer 4 

Thx !!!

DÜZENLEME

public ActionResult RenderPoll() 
{ 

    var viewModel = new PollViewModel 
    { 
     Themes = ThemeList() 
    }; 

    return PartialView("~/Views/Partials/_Polls.cshtml", viewModel); 

} 

cevap

1

Değişim bu satırı:

var themePageList = Umbraco.Content(CurrentPage.Id).Children.Where("¿¿¿???"); 

var themePageList = Umbraco.TypedContent(CurrentPage.Id).Children.Where(x => x.GetPropertyValue<bool>("active")); 

Umbraco.Content()

içinoysa bir dinamiktir, IPublishedContent türüdür.

Tıraş makinenize filtre uygulamanıza gerek yoktur.

+0

Evet! Çözüm budur Umbraco.Web ve System.Linq; – avechuche

0
@model Encuestas.ViewModels.PollViewModel 

@foreach (var currentTheme in Model.Themes(p => p.Active==true)) 
{ 
    <div> 
     <p> 
      <h1 style="text-align: center">@currentTheme.Title</h1> 
     </p> 
    </div> 
} 
+0

Yok :(bende olmayan ".Children" yöntemi (? – avechuche

+0

ı üstlendiğini çocuklar. Çocuklar. – Wjdavis5

+0

'Temalar' dir modeli (PollViewModel) içinde bir Liste nedir türü. Bir Enumerable oldu yayında kontrolörü gör – avechuche