使用Orchard CMS上的管理面板,我创建了以下内容:
问题在于,基于EventDate,我们只显示即将发生的事件,而不是过去的事件。如果由于某种原因没有要显示的事件,则所有用户获取的是一个没有任何信息的空白页面。
我的问题是,我如何修改我的查询或投影,以便显示如下内容:“没有安排当前事件”?
我知道查询布局上的属性允许我指定“无结果”,但这意味着存在记录并且实际属性为空。但是,在我的例子中,没有记录。
提前谢谢大家。
圣拉斐尔
顺便说一句,我使用的是最新的Orchard版本1.6。
答案 0 :(得分:0)
我所做的是创建一个形状并将其用作查询中的视图。然后,形状将有一个if语句来检查查询返回是否给出任何结果。
示例:强>
@using Orchard.ContentManagement
@using Orchard.Utility.Extensions
@{
var dealsTerms = ((IEnumerable<ContentItem>)Model.ContentItems).ToList();
}
@if (dealsTerms.Any() )
{
<div>
@foreach (var dealTerm in dealsTerms)
{
var contentManager = dealTerm.ContentManager;
<div>
@Display(contentManager.BuildDisplay(dealTerm, "Summary"))
</div>
}
</div>
}
else
{
<p>No deals found</p>
}
我用这篇文章作为参考: http://www.ideliverable.com/blog/ways-to-render-lists-of-things
祝你好运答案 1 :(得分:0)
如果投影是Layouts元素,则可以使用以下内容在主题的Views / Elements文件夹中创建Projection.cshtml文件:
@{
var list = Model.List;
var pager = Model.Pager;
if (list != null)
{
@Display(list)
if (list.Items.Count == 0)
{
<div>There are currently no items.</div>
}
}
if (pager != null)
{
@Display(pager)
}
}
这是默认模板的副本,其中添加了if (list.Items.Count == 0)
部分。根据需要进行编辑。