asp.net mvc3 动态菜单怎么实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net mvc3 动态菜单怎么实现相关的知识,希望对你有一定的参考价值。
/**
* 我要实现的效果是菜单栏里面只显示作为父项的菜单项
* 点击一个菜单项时,下拉菜单里面显示以这个项作为父项的所有子项
* 父项和子项的文本和链接都可以在后台更改
*/
1、查看代码
@
ViewBag.Title = "Elixir ERP V1.0 Beta";
Layout = "~/Views/Shared/_LayoutUser.cshtml";
<div class="main-container">
<div class="main-wrapper">
<div class="scroll-top">
<a href="#" class="tip-top" title="Go Top"><i
class="icon-arrow-up"></i></a>
</div>
<div class="left-bar merge-left">
<!-- SEARCH BAR -->
<!-- LEFT NAV -->
@section leftnav
</div>
</div>
<div class="container">
</div>
</div>
2、菜单模型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Elixir.Models
public class Menu
public Menu()
MenuItems = new List<MenuItem>();
public int Id get; set;
public string Name get; set;
public List<MenuItem> MenuItems get; set;
3、菜单项
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Elixir.Models
public class MenuItem
public int Id get; set;
public int UserName get; set;
public string Name get; set;
public string ActionName get; set;
public string ControllerName get; set;
public string Url get; set;
public Menu ParentMenu get; set;
4、导航模型结构
<div class="left-nav">
<ul class="side-navigation accordion"
id="nav-accordion">
<li><a href="#"><i
class="icon-home"></i>Home</a></li>
<li><a href="#"><i class="icon-list-alt"></i>User
Management</a>
<ul><li><a href="#"><i
class="icon-double-angle-right"></i>Create New User</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Manage Users</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>View Users</a></li>
</ul>
</li>
<li><a href="#"><i
class="icon-table-2"></i>Employee Management</a>
<ul>
<li><a href="#"><i
class="icon-double-angle-right"></i>Employee Registration</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Manage Employees</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>View Employees</a></li>
</ul>
</li>
<li><a href="#"><i class="icon-columns"></i>DMIT
Management</a>
<ul>
<li><a href="#"><i
class="icon-double-angle-right"></i>Scan Management</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Report Generation</a></li>
</ul>
</li>
<li><a href="#"><i
class="icon-laptop"></i>Franchise Management </a>
<ul>
<li><a href="#"><i
class="icon-double-angle-right"></i>Franchise Registration</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Franchise Fee Management</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Franchise Account
Management</a></li>
</ul>
</li>
<li><a href="#"><i class="icon-font"></i>Customer
Management </a>
<ul>
<li><a href="#"><i
class="icon-double-angle-right"></i>Customer Registration</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Manage Customer</a></li>
</ul>
</li>
<li><a href="#"><i
class="icon-cord"></i>Counseling Management</a>
<ul>
<li><a href="#"><i
class="icon-double-angle-right"></i>Add Counseling Session</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Manage Counseling
Sessions</a></li>
</ul>
</li>
<li><a href="#"><i
class="icon-tools"></i>Accounts</a>
<ul>
<li><a href="#"><i
class="icon-double-angle-right"></i>Manage Income</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Manage Expense</a></li>
</ul>
</li>
<li><a href="#"><i
class="icon-files"></i>Reports</a>
<ul>
<li><a href="#"><i
class="icon-double-angle-right"></i>Elxir Monthly Reports</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Elixir Yearly Reports</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Franchise Monthly
Reports</a></li>
<li><a href="#"><i
class="icon-double-angle-right"></i>Franchise yearly Reports</a></li>
</ul>
</li>
</ul>
</div> 参考技术A 1.递归方式,通过根元素(一级菜单),找到自己下面的节点元素(二级菜单),如果还用则继续查询(通过就是自己调用自己,一定要有终止条件,不然会堆栈溢出,多次与数据库交互)
2、一次性把数据查询出来,绑定到ztree(要json格式的数据)上,下面是简单的使用,具体看官网实例!追问
能不能帮我贴一个示例?或者发一个实例到我的邮。。。。箱。初学。
asp.net MVC动态路由
项目中遇到需要动态生成控制器和视图的。
于是就折腾半天,动态生成控制器文件和视图文件,但是动态生成控制器不编译是没法访问的。
找人研究后,得到要领:
1.放在App_Code文件夹内
2.不要命名空间
功能虽然实现了,可是觉得这个发放实在有些挫,心里老挂念这个事情。想着既然使用MVC,能不能实现动态路由访问呢?
果然找到两篇相关的文章,解决了问题:
1.http://www.cnblogs.com/gyche/p/5216361.html
2.http://stackoverflow.com/questions/16026441/dynamic-routes-from-database-for-asp-net-mvc-cms
具体使用,看过文章应该能懂。
事件感想:
技术这东西,如果不理解原理,就利用不到它的强大之处;
开发思路同样重要,要拆掉思维里的墙。
以上是关于asp.net mvc3 动态菜单怎么实现的主要内容,如果未能解决你的问题,请参考以下文章