Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 如何从类别中创建多级菜单_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 如何从类别中创建多级菜单

Asp.net mvc 4 如何从类别中创建多级菜单,asp.net-mvc-4,Asp.net Mvc 4,我有一个类别模型,可以有多个子类别。我想在菜单中显示这些类别,但只能降低一级。如何制作多级菜单解决方案? 我尝试过在局部视图中使用一个helper方法,但它加载了两次 类别模型: public class Category { public int CategoryId { get; set; } [Required(ErrorMessage = "Fill in a Name")] public string Name { get; set; } public

我有一个类别模型,可以有多个子类别。我想在菜单中显示这些类别,但只能降低一级。如何制作多级菜单解决方案? 我尝试过在局部视图中使用一个helper方法,但它加载了两次

类别模型:

public class Category
{
    public int CategoryId { get; set; }
    [Required(ErrorMessage = "Fill in a Name")]
    public string Name { get; set; }
    public int? ParentCategoryId { get; set; }
    public Category ParentCategory { get; set; }
    public virtual ICollection Listings { get; set; }
}
填充局部视图菜单的分类控制器

[ChildActionOnly]
   public ActionResult GetMenu()
   {
       IList<Category> catAll = new List<Category>();
       catAll = categoriesRepository.All.ToList();
       return PartialView("_Menu", catAll);
   }
@model List
@foreach (var mp in Model.Where(p => p.ParentCategoryId == null))
{

        @mp.Name

            @foreach (var menuLevel2 in Model.Where(p => p.ParentCategoryId.Equals(mp.CategoryId)))
            {
                @menuLevel2.Name                 
                        @ShowTree(Model, mp.CategoryId);                    
                }
            }


}
    @helper ShowTree(List foos, int ParentId)
{
foreach (var menuLevel2 in foos)
{
    if (menuLevel2.ParentCategoryId == ParentId)
    {
                @menuLevel2.Name
    }
}
}

你应该从一个表示菜单结构的层次视图模型开始,然后你可以编写一个扩展方法来显示菜单-类似于你应该从一个表示菜单结构的层次视图模型开始,然后你可以编写一个扩展方法来显示菜单-类似于