Для этого нам нужно создать метод в модели, который будет возвращать словарь категории и его вхождение.Найдите приведенный ниже метод, который можно использовать для возврата словаря.
public Dictionary<string,int> CountArray()
{
Dictionary<string, int> countArr = new Dictionary<string, int>();
foreach (var category in Categories)
{
if(countArr.ContainsKey(category))
{
countArr[category] = countArr[category] + 1;
}
else
{
countArr[category] = 1;
}
}
return countArr;
}
Теперь создайте переменную в файле cshtml и присвойте это значение, возвращаемое из модели.Используйте эту переменную в цикле foreach.Я думаю, это поможет вам решить вашу проблему.
Я действительно не предлагаю такой подход.Но, поскольку вам нужна помощь, пожалуйста, найдите код бритвы.
@{ Dictionary<string, int> countarry = new Dictionary<string, int>();}
@foreach (var category in Model.Categories)
{
if (countarry.ContainsKey(category))
{
countarry[category] = countarry[category] + 1;
}
else
{
countarry[category] = 1;
}
}
@foreach (var categoryName in countarry.Keys)
{
if(countarry[categoryName] > 1)
<a href="@Url.ArticulateCategoryUrl(Model, categoryName)">@categoryName - (@countarry[categoryName])</a>
else
<a href="@Url.ArticulateCategoryUrl(Model, categoryName)">@categoryName</a>
}
Я надеюсь, что это то, что вы ожидаете.