Вы можете легко сделать это, имея каждый список <ul>
в PartialView
, и для каждого нового списка, который вам нужно начать, просто позвоните Html.RenderPartial("myPartialName");
.
Таким образом, Category
PartialView может выглядеть следующим образом:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Category>>" %>
<% foreach(Category cat in ViewData.Model) { %>
<li><p><%= cat.name %></p>
<% if (cat.categories.Count > 0) {
Html.RenderPartial("Category", cat.Categories);
} %></li>
<% } %>
В вашем представлении вы просто отправляете «корневую» коллекцию в качестве модели для частичного представления:
<% Html.RenderPartial("Category", ViewData.Model) %>
EDIT:
- Я забыл второй параметр для вызова
Html.RenderPartial()
- конечно, категория должна быть передана как модель.
- Конечно, вы правы насчет СУХОЙ ошибки, которую я сделал - я соответствующим образом обновил свой код.