我试图调用一个返回局部视图的控制器方法。但是,由于在没有控制器的情况下调用它,视图将返回null引用。
如果我想通过控制器方法调用局部视图,我该怎么做呢。
到目前为止,我的代码看起来像这样:
Layout.cshtml
<div class="container" id="menu">
@Html.Partial("~/Views/Category/_Menu.cshtml")
</div>
的 CategoryController.cs
public ActionResult Menu()
{
var model = new CategoryModel()
{
categories = new SortedDictionary<int, List<CategoryDTO>>()
};
model.categories[0] = new List<CategoryDTO>();
model.categories[0].Add(new CategoryDTO()
{
id = 1,
name = "Nålebinding"
});
model.categories[0].Add(new CategoryDTO()
{
id = 2,
name = "Strik"
});
model.categories[0].Add(new CategoryDTO()
{
id = 3,
name = "Hækling"
});
model.categories[1] = new List<CategoryDTO>();
model.categories[1].Add(new CategoryDTO()
{
id = 4,
name = "Sokker"
});
model.categories[1].Add(new CategoryDTO()
{
id = 5,
name = "Vanter"
});
model.categories[2] = new List<CategoryDTO>();
model.categories[2].Add(new CategoryDTO()
{
id = 6,
name = "Sokker"
});
return PartialView("_Menu", model);
}
的 _Menu.cshtml
@model GUI.Models.CategoryModel
@using DTO;
@helper subCategories(SortedDictionary<int, List<CategoryDTO>> list, int parent)
{
<ul>
@foreach(var e in list[parent])
{
<li>
@e.name
@subCategories(list, e.id)
</li>
}
</ul>
}
@subCategories(Model.categories, 0)