基本的に別のカテゴリであるナビゲーション オブジェクトの親を持つカテゴリ オブジェクト (EF で取得) があります。
これらの Category オブジェクトは、Parent が null になるまで再帰を続けます。
私が得る必要があるもの:
<ul>
<li>Highest level category (parent=null)</li>
<li>
<ul>
<li>Second highest level category</li>
<ul>
<li>Local category</li>
</ul>
<ul>
</li>
</ul>
できれば、大量の文字列操作を行わずに (大量のクラスやその他のものが関係しているため)、純粋に再帰ビューを使用します。今の問題は、それがどのように機能するかわかりません。最上位のカテゴリーから下がれば楽だが、逆に上がらなければならない(後ろ向き)。
私が持っているもの:
@model Domain.Category
@{
ViewBag.Recursion = (int) ViewBag.Recursion + 1;
}
@if (Model.Parent != null)
{
@Html.Partial("_RecursiveCategory", Model.Parent)
<li>
<ul class="categorylist">
<li>@Html.ActionLink(Model.Name, "Index", "Categories", new {Model.Id, name = Model.FriendlyName}, null)</li>
</ul>
</li>
}
else
{
<li>@Html.ActionLink(Model.Name, "Index", "Categories", new {Model.Id, name = Model.FriendlyName}, null)</li>
}
これは明らかに第 2 レベルまでは問題ありませんが、そこから先はすべて同じ列に並んでいます。
それで、これを解決する方法について誰かが良い解決策を考えることができますか? 繰り返しになりますが、文字列連結の大規模なハックはありませんか?