2016-04-14 8 views
1

У меня есть вопрос. Мне нужно перечислить ребенок с «Активной == истинной» собственностью от пользовательского контроллера и от .cshtmlФильтр нестандартного типа - Umbraco

контроллера

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; 
    } 
} 

А если не фильтровать на контроллере, как и я фильтровать представление?

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

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 !!!

РЕДАКТИРОВАТЬ

public ActionResult RenderPoll() 
{ 

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

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

} 

ответ

1

Изменение этой линии:

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

к

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

Umbraco.Content() является динамическим, тогда как Umbraco.TypedContent() - тип IPublishedContent.

Вам не нужно фильтровать в вашем бритвенном файле.

+0

Да, это решение , просто добавьте Umbraco.Web и 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

Нет :(Я не метод «.children» (? – avechuche

+0

я предполагающие дети были перечислимыми. Какой типа дети. – Wjdavis5

+0

„Темы“ является списком внутри моделей (PollViewModel). См контроллера в посте – avechuche

Смежные вопросы