ASP.NET MVC3 を使用してブログを作成しており、そのための tagCloud を作成したいと考えています。
さて、私の質問は、それをリストに入れ(必要ですか?)、数えてから、さまざまなサイズで印刷する方法です。
編集:
次のようにして、すべての投稿のすべてのタグをカウントできるようになりました。
Dictionary<string, int> tagLista = new Dictionary<string, int>();
foreach (Post post in Model)
{
foreach (Tag tag in post.Tags)
{
if (!tagLista.ContainsKey(tag.Name))
{
tagLista[tag.Name] = 1;
}
else
{
tagLista[tag.Name] += 1;
}
}
}
//Print out diff. sizes depending on count
foreach (KeyValuePair<string, int> pair in tagLista)
{
if (pair.Value <= 2)
{
<a class="minSize" href="@Href("~/Posts/Tags/" + pair.Key)">@pair.Key</a>
}
if (pair.Value > 2 && pair.Value <= 4)
{
<a class="medSize" href="@Href("~/Posts/Tags/" + pair.Key)">@pair.Key</a>
}
if (pair.Value > 4 && pair.Value >= 6)
{
<a class="maxSize" href="@Href("~/Posts/Tags/" + pair.Key)">@pair.Key</a>
}
}
ここでの問題は、データベースのすべてのタグではなく、現在のページのすべての投稿のタグのみが表示されることです。代わりにどうすればいいですか?このビュー(インデックス)の上部で使用します:
@using Blog.Models;
@model IEnumerable<Post>
助けてくれてありがとう!