我有一个通过我创建的空缺页面创建和填充的面板。我这样做:
@{
var root = CurrentPage.AncestorOrSelf(1);
var newsNode = root.Descendants("News").First();
var vacanciesNode = root.Descendants("Vacancies").First();
string shortenedSummary = string.Empty;
}
<ul>
@foreach (var vacancyItem in vacanciesNode.Descendants("Vacancy").Take(3).OrderBy("postDate desc"))
{
<p>here we are 2</p>
@vacanciesNode.Count().ToString()
<li>
<h4><a href="@vacancyItem.Url">@vacancyItem.jobTitle</a></h4> <span>Posted on @vacancyItem.postDate.ToString("dd/MM/yyyy")</span>
<p>
@if (vacancyItem.jobSummary.Length <= 182)
{
@vacancyItem.jobSummary
}
else
{
shortenedSummary = vacancyItem.jobSummary.Substring(0, 182) + "...";
@shortenedSummary
}
</p>
<a href="@vacancyItem.Url" class="btn btn-purple">Read More..</a>
</li>
}
</ul>
但是,当没有空缺物品时,我的清单是空的。如果是这种情况,我希望它能够阅读&#34;抱歉,目前没有空缺&#34;但我不知道如何检查我的vacanciesNode
是否有任何物品。
有人能告诉我如何实现这一目标吗?
答案 0 :(得分:1)
由于。Descendants()
方法返回DynamicContentList
(一个集合),您只需对集合执行.Count()
并检查它是否大于或等于1.
如果集合中有超过0个项目,则它不是空的。
所以,你需要做的是用@foreach
语句围绕你的@if
语句检查一下,然后在else
语句后打印你要显示的任何html如果有的话没有空缺
@if( vacanciesNode.Descendants("Vacancy").Take(3).OrderBy("postDate desc").Count() > 0) {
//Do foreach
}
else
{
//Write message about missing vacancies
}