MVC 多级目录菜单

MVC多级目录菜单  ----- 简单模拟

Model ---- cs

{
    public class Class1
    {
        public int ID{get;set;}
        public int parentID { get; set; }
        public int childID { get; set; }
        public string title { get; set; }
    }

MVC View ---- cshtml:

@using WebApplication1.Models;
    @{
        ViewBag.Title = "About";
    }
    <h2>@ViewBag.Title.</h2>
    <h3>@ViewBag.Message</h3>

    <p>Use this area to provide additional information.</p>

@{
    var totalList = new List<Class1>();//全部目录列表
    totalList.Add(new Class1{ ID = 1,parentID = 0, title = "title_1"});
    totalList.Add(new Class1{ ID = 5,parentID = 0, title = "title_5"});
    totalList.Add(new Class1{ ID = 12,parentID = 0, title = "title_12"});
    totalList.Add(new Class1{ ID = 2,parentID = 1, title = "title_2"});
    totalList.Add(new Class1{ ID = 3,parentID = 1, title = "title_3"});
    totalList.Add(new Class1{ ID = 4,parentID = 1, title = "title_4"});
    totalList.Add(new Class1{ ID = 6,parentID = 5, title = "title_6"});
    totalList.Add(new Class1{ ID = 7,parentID = 5, title = "title_7"});
    totalList.Add(new Class1{ ID = 8,parentID = 5, title = "title_8"});
    totalList.Add(new Class1{ ID = 9,parentID = 2, title = "title_9"});
    totalList.Add(new Class1{ ID = 10,parentID = 2, title = "title_10"});
    totalList.Add(new Class1{ ID = 11,parentID = 2, title = "title_11"});
    totalList.Add(new Class1{ ID = 13,parentID = 12, title = "title_13"});
    totalList.Add(new Class1{ ID = 14,parentID = 12, title = "title_14"});
    totalList.Add(new Class1{ ID = 15,parentID = 12, title = "title_15"});
    totalList.Add(new Class1{ ID = 16,parentID = 4, title = "title_16"});
    totalList.Add(new Class1{ ID = 17,parentID = 4, title = "title_17"});
    totalList.Add(new Class1{ ID = 18,parentID = 4, title = "title_18"});
    foreach (var item in totalList){
        <ul>
            @if (item.parentID == 0)
            {//如果为一级目录
                <li>@item.title</li>
                if (totalList.Find(x => x.parentID == item.ID ) != null)
                {
                    @Show(item);
                }
            }
        </ul>
    }
}

@helper Show(Class1 item){
    var totalList = new List<Class1>();//全部目录列表
    totalList.Add(new Class1 { ID = 1, parentID = 0, title = "title_1" });
    totalList.Add(new Class1 { ID = 5, parentID = 0, title = "title_5" });
    totalList.Add(new Class1 { ID = 12, parentID = 0, title = "title_12" });
    totalList.Add(new Class1 { ID = 2, parentID = 1, title = "title_2" });
    totalList.Add(new Class1 { ID = 3, parentID = 1, title = "title_3" });
    totalList.Add(new Class1 { ID = 4, parentID = 1, title = "title_4" });
    totalList.Add(new Class1 { ID = 6, parentID = 5, title = "title_6" });
    totalList.Add(new Class1 { ID = 7, parentID = 5, title = "title_7" });
    totalList.Add(new Class1 { ID = 8, parentID = 5, title = "title_8" });
    totalList.Add(new Class1 { ID = 9, parentID = 2, title = "title_9" });
    totalList.Add(new Class1 { ID = 10, parentID = 2, title = "title_10" });
    totalList.Add(new Class1 { ID = 11, parentID = 2, title = "title_11" });
    totalList.Add(new Class1 { ID = 13, parentID = 12, title = "title_13" });
    totalList.Add(new Class1 { ID = 14, parentID = 12, title = "title_14" });
    totalList.Add(new Class1 { ID = 15, parentID = 12, title = "title_15" });
    totalList.Add(new Class1 { ID = 16, parentID = 4, title = "title_16" });
    totalList.Add(new Class1 { ID = 17, parentID = 4, title = "title_17" });
    totalList.Add(new Class1 { ID = 18, parentID = 4, title = "title_18" });
    <ul>
        @for (int i = 0; i < totalList.Count; i++){
        if (item.ID == totalList[i].parentID){
            <li>@totalList[i].title</li>
            if (totalList.Find(x => x.parentID == totalList[i].ID) != null){
                @Show(totalList[i]);
            }
        }
        }
    </ul>
}
时间: 2024-11-15 13:06:34

MVC 多级目录菜单的相关文章

asp.net mvc多级目录结构和多级area实现技巧

今天在工作要实现这个多级area.其原因是这个项目需要多级的功能,大的类别里有小的类别,小的类别里有具体的功能项,每一个功能项还有若干动作Action,所以在菜单和mvc工程的结构上都需要有体现多级的元素,菜单是用的accordion,每一个大类就是accordion的一个pane,然后每一个小类就是用一个表格来表示的,每一个功能就是用单元格加一个链接来表示的.在网站目录结构上,area可以很方便地实现一级的目录结构,比如可以有admin, backoffice, logging, busine

MVC 多级目录(控制器) 路由重写 及 多级Views目录 的寻找视图的规则

转自:[原]Asp.net Mvc   多级控制器 路由重写 及 多级Views目录 的寻找视图的规则 asp.net mvc 为了更好的控制views的页面存放,和控制器的可读性,需要分开多级目录来存放. 1.那么我们再来看我们需要的访问方式,如下图 如果我们要访问Admin下的TestController里面的Index页面,那么我们输入Test/Index,这个肯定不行的.因为TestController根本就不在Controllers的根目录下,而是在Controllers/Admin下

asp.net mvc 多级目录结构

[email protected] ASP.NET MVC默认的文件组织和URL访问都是一级,我们通常要将一个功能模块组织到一个目录下.方法是:1.文件组织 分别在Controllers和Views文件夹下建议CaiGou文件夹,然后将CaiGou模块的CV将到对应文件夹下 2.URL Routing [c-sharp] view plaincopy //采购部分路由 routes.MapRoute( "CaiGou", // 路由名称 "CaiGou/{controller

MVC2 Area实现网站多级目录

Areas是ASP.NET Mvc 2.0版本中引入的众多新特性之一,它可以帮你把一个较大型的Web项目分成若干组成部分,即Area.实现Area的功能可以有两个组织形式: 在1个ASP.NET Mvc 2.0 Project中创建Areas. 创建多个ASP.NET Mvc 2.0 Project,每个Project就是一个Area. 第2种结构比较复杂,但第1种结构同样可以做到每个Area之间的并行开发,互不影响,所以不推荐第2种方法. 以ASP.NET Mvc 2.0的默认模板为例: 1.

Python3 使用基本循环实现多级目录(思路)

一.多级目录设计: 1. 通过循环的方式显示菜单和进入菜单 2. 设置标志位以提供回退上一层菜单 2. 设置标志位以提供退出程序 二.注意要点: 1. 菜单样式,层次关系不要弄混乱 2. 当输入错误时,保留在当前view之下 3. 注意标志位使用之后对其他循环是否有影响,或者需要走其他分支

基于jQuery垂直多级导航菜单代码

基于jQuery垂直多级导航菜单代码是一款黑色风格的jQuery竖直导航菜单特效下载.效果图如下: 在线预览   源码下载 实现的代码. html代码: <ul class="ce"> <li> <a class="xz" href="#">目录A</a> </li> <li> <a href="#">目录B <img class=&qu

word中怎么设置多级目录编号

本人有幸参与过863项目时学到了如何定义样式,这是写报告的第一步. 但是定义样式前,需要设置多级目录编号,也就是你的样式可以自动编号,这一点非常关键. 以下转自:http://blog.sina.com.cn/s/blog_6721f25c0100nuf0.html 设置标题的时候希望出现多标题并且自动编号的标题,如下1.     XXXXXXXXXXX   1.1  XXXXXXXXXXX   1.2  XXXXXXXXXXX   1.3  XXXXXXXXXXX2  XXXXXXXXXXX 

[ PHP+jQuery ] ajax 多级联动菜单的应用:电商网站的用户地址选择功能 ( 一 ) - 传统下拉菜单

/** jQuery version: 1.8.3 Author: 小dee Date: 2014.11.5 */ 说明:分析其他网站的图片较多,可以在目录跳过直接看本文 demo . 目录: 其他网站分析 亚马逊 淘宝 京东 当当 本文案例 demo1 demo2 [ 后面的博文再写 ] demo3 [ 后面的博文再写 ] 惯例,先看看他山之石,选择了四家比较大的电商网站:亚马逊.淘宝.京东.当当,看看它们的地址联动菜单是怎么做的. 1. 亚马逊[返回目录][下一节:淘宝] 图1 默认界面 说

将多级目录打包成zip文件

最近接触PHP,需要用到zip压缩,在网上搜索的一大堆,发现代码都不低于50行.  而且调用还很费事(基础太少看不懂).让我收获的是Php提供有一个ZipArchive类,并有如下方法. bool addEmptyDir( string $dirname ) bool addFile ( string $filename [, string$localname = NULL[, int$start = 0 [, int $length = 0 ]]] ) mixed open( string $