使用自定义过滤器 属性 - Umbraco
Filter with custom property - Umbraco
我有一个问题。我需要从自定义控制器和 .cshtml
中列出带有 "Active == true" 属性 的子项
控制器
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
谢谢!!!
编辑
public ActionResult RenderPoll()
{
var viewModel = new PollViewModel
{
Themes = ThemeList()
};
return PartialView("~/Views/Partials/_Polls.cshtml", viewModel);
}
@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>
}
更改此行:
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 类型。
您不需要在 razor 文件中过滤。
我有一个问题。我需要从自定义控制器和 .cshtml
中列出带有 "Active == true" 属性 的子项控制器
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
谢谢!!!
编辑
public ActionResult RenderPoll()
{
var viewModel = new PollViewModel
{
Themes = ThemeList()
};
return PartialView("~/Views/Partials/_Polls.cshtml", viewModel);
}
@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>
}
更改此行:
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 类型。
您不需要在 razor 文件中过滤。