[英]Umbraco Razor c# Listing unique tags
我一直在嘗試使用Razor的Umbraco v6創建博客。
這是我的第一個Umbraco項目,因此我仍然可以處理問題,但是我設法使大部分工作按我的意願進行,但是我想在側面小部件中列出標簽。
到目前為止,我有這個-
@{
var blogitems = Umbraco.Content("1188").Children.Where("Visible");
foreach(var blog in blogitems) {
var tagsplit = blog.tags.Split(',');
foreach(var tag in tagsplit) {
<li>
<a href="/blog/?@tag">@tag</a>
</li>
}
}
}
問題是這列出了所有重復很多的標簽。 我試圖在只返回錯誤的tagsplit變量上使用.Distinct。
有任何想法嗎?
.Distinct()
應該可以工作,但是由於它不起作用,因此一種快速而骯臟的解決方案是:
@{
var blogitems = Umbraco.Content("1188").Children.Where("Visible");
foreach(var blog in blogitems) {
var tagsplit = blog.tags.Split(',');
var usedTags=new List<string>();
foreach(var tag in tagsplit) {
if(!usedTags.Contains(tag)){
<li>
<a href="/blog/?@tag">@tag</a>
</li>
}
usedTags.Add(tag);
}
}
}
要獲取Umbraco中的所有標簽,請執行以下操作:
Umbraco.TagQuery.GetAllContentTags().OrderBy(t => t.Text)
您的查詢給您重復項的原因是因為您的博客項目上具有相同的標簽,並且您在錯誤的位置進行了重復。
var tagList = Umbraco.Content(1188).Children
.Where("Visible")
.SelectMany( c => c.tags.Split(',') )
.Distinct()
.OrderBy( x => x )
會為您提供所有內容中所有標簽的漂亮且有序的列表...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.