1

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 を使用しようとしました。

何か案は?

4

2 に答える 2

0

.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);
        }
    }
}
于 2014-06-19T16:37:06.383 に答える
0

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 )

すべてのコンテンツのすべてのタグの素敵な順序付きリストが表示されます...

于 2015-11-11T03:45:08.713 に答える